簡體   English   中英

需要函數來查找數組中的最大值,將其返回到main()並打印出來

[英]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]); 讀入一個數字,並將其放在數組末尾的內存位置。

更改后:

  1. 您在while條件中不需要scanf() 它應該放在while身體中。

  2. 您的scanf()仍然不太正確。 你需要告訴在陣列中要存儲的輸入。

  3. str[i]; 什么也沒做

printf("Please enter 10 integer values:\\n"); scanf("%d", &str[LIMIT]);

這不符合您的想法。 首先,它僅讀入一個數字。其次,您正在將其讀入數組的最后一個位置+1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM