[英]Need function to find largest value in an array, return it to main( ) and print out
對我來說,我的程序看起來應該按照我想要的去做:提示用戶為一個數組輸入10個值,然后使用一個函數在數組中找到最大的那些值,然后將最大的數返回給主函數。 ()函數並打印出來。
但是,當我輸入值時,我再也找不到像我輸入的數字那樣的數字了。
例如,假設我只輸入“ 10,11”,然后返回“ 1606416648 =最大值”。
有人知道我在做什么錯嗎?
這是代碼:
#include <stdio.h>
#define LIMIT 10
int largest(int pointer[]);
int main(void)
{
int str[LIMIT];
int max;
int i = 0;
printf("Please enter 10 integer values:\n");
while (i < LIMIT)
{
scanf("%d", &str[i]);
i++;
}
// Thanks for your help, I've been able to make the program work with the above edit!
max = largest(str);
printf("%d = largest value\n", max);
return 0;
}
int largest(int pointer[])
{
int i;
int max = pointer[0];
for (i = 1; i < LIMIT; i++)
{
if (max < pointer[i])
max = pointer[i];
}
return max;
}
scanf("%d", &str[LIMIT]);
讀入一個數字,並將其放在數組末尾的內存位置。
更改后:
您在while條件中不需要scanf()
; 它應該放在while
身體中。
您的scanf()
仍然不太正確。 你需要告訴它在陣列中要存儲的輸入。
str[i];
什么也沒做
printf("Please enter 10 integer values:\\n"); scanf("%d", &str[LIMIT]);
這不符合您的想法。 首先,它僅讀入一個數字。其次,您正在將其讀入數組的最后一個位置+1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.