我的代码出了什么问题?它总是返回最后一个数字但不是最大数字?我花了半个小时和一个小时的时间抓挠我的脑袋。我仍然找不到这里的错误..
请帮忙
// Largest among ten numbers
#include <stdio.h>
#include <conio.h>
int num[10],large,b; // Global Variables
int largest(int a); // Function protype
int main()
{
for(int i=0;i<5;i++)
{
printf("Enter number %d = ",i+1);
scanf("%d",&num[i]);
large = largest(num[i]); // Calling Function
/*
printf("Num(%d)= %d",i,num[i]); // Testing
printf("\nLargest for now = %d\n\n",large); // Testing
*/
}
printf("\n\n\n%d is the largest",large);
getch();
}
int largest(int a) // Function definition
{
if (a>=b)
{
return a;
b=a;
}
else
{
return b;
}
}
答案 0 :(得分:1)
问题在于:
if (a>=b)
{
return a;
b=a;
}
在分配之前返回,因此b始终为0.只需在返回之前进行分配即<。p>
if (a>=b)
{
b=a;
return a;
}