使用数组的十个数字中最大的

时间:2016-07-25 04:30:42

标签: arrays

我的代码出了什么问题?它总是返回最后一个数字但不是最大数字?我花了半个小时和一个小时的时间抓挠我的脑袋。我仍然找不到这里的错误..

请帮忙

// 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;
        }
}

1 个答案:

答案 0 :(得分:1)

问题在于:

if (a>=b)
    {
        return a;
        b=a;
    }

在分配之前返回,因此b始终为0.只需在返回之前进行分配即<。p>

if (a>=b)
    {
        b=a;
        return a;            
    }

Demo