c程序。错误在下面是什么意思

时间:2017-03-10 05:53:20

标签: c

||=== Build: Debug in 78 pp (compiler: GNU GCC Compiler) ===|

||In function 'main':|

|3|error: expected identifier or '(' before 'int'|

|8|warning: format '%f' expects argument of type 'double', but argument 2 has 
type 'int' [-Wformat=]|

|9|error: 'big' undeclared (first use in this function)|

|9|note: each undeclared identifier is reported only once for each function it 
appears in|

|11|error: 'i' undeclared (first use in this function)|

|19|warning: control reaches end of non-void function [-Wreturn-type]|

||=== Build failed: 3 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|

源代码:

#include<stdio.h>
int main(){ 
   int n,num,int i; 
   printf("Enter the values of n: ");
   scanf("%d",&n); 
   printf("Number %f",1); 
   scanf("%d",big); 
   for(i=2;i<n;i++){ 
       printf("Number %df: ",i); 
       scanf("%d",&num); if(big<num) big=num; 
   } 
   printf("%d",big); 
} 

1 个答案:

答案 0 :(得分:1)

<强> ERROR1: 预期标识符或&#39;(&#39;之前&#39; int&#39;

变量n,num和i的声明是错误的。我想你放了一个,而不是; 所以用

代替
int n,num;
int i;

int n, num, i;

<强> Warning2: 格式&#39;%f&#39;期望类型&#39; double&#39;的参数,但参数2的类型为&#39; int&#39; [-Wformat =]

%f表示它期望浮点数,你已经传递了1(int)。所以用6替换

printf("Number %d", 1);

甚至

printf ("Number 1"); 

因为它是常数。

<强>误差3: &#39;大&#39;未申报(首次使用此功能)

大未宣布。所以添加int big;(假设是因为您使用%d扫描)。稍后会出现的另一个问题是你传递了int,其中int *是预期的。所以用

替换scanf调用
scanf("%d",&big);

<强> Error4: &#39;我&#39;未申报(首次使用此功能

将以Error1的分辨率解决。

<强> Warning5: 控制到达非空函数的末尾[-Wreturn-type]

main声明为返回类型为int但不返回任何内容

添加

return 0; 

最后表示计划成功终止。如果程序没有成功退出,则将0替换为任何其他错误代码。