函数运行2次。

问题描述:

我做了这个程序,代码成功编译我以为程序需要5个用户输入,但需要10个输入。函数运行2次。

#include <stdio.h> 
int greatest_number(); 
int main() 
{ 
    greatest_number(); 
    printf("Greatest number is %d", greatest_number()); 
    return(0); 
} 

int greatest_number() 
{ 
    int a[6], x, i, z, y; 

我不知道为什么该环路从用户需要10个输入
甚至我编程它采取5个输入 为(X = 0; X < 5; X ++) { 的printf(“输入一个号码:”); 012fscanf(“%d”,& a [x]); } a [x] = 0; x = 0,i = 1; y = 0; z = a [x]; (a [x]) 如果(z> a [i]){z = a [y]; } else { z = a [i]; y = i; } x ++; i ++; } return(z); }

+2

请格式化您的代码。目前它是无法读取的。 –

+0

不可读 - 修复压痕,(我的意思,其实它缩进)。在函数之间添加一个空行。 – ThingyWotsit

+8

因为你调用'greatest_number'功能*** *** 2倍? –

在此代码段函数greatest_number被调用两次

greatest_number(); 
^^^^^^^^^^^^^^^^^ 
printf("Greatest number is %d", greatest_number()); 
           ^^^^^^^^^^^^^^^^^ 

第一呼叫是多余的,其结果被丢弃。

而且似乎然后输入的所有元素具有负值(除非有像我所理解的标记值的最后一个元素),那么该函数将返回标记值。