读书人

实在不懂错哪了。新书

发布时间: 2013-03-27 11:22:42 作者: rapoo

实在不懂哪里错了。。新书求助

#include<stdio.h>
int main()
{
int max4(int a,int b,int c,int d);
int a,b,c,d,m;
printf("please enter five digits:");scanf("%d %d %d %d",&a,&b,&c,&d);
m=max4(a,b,c,d);
printf("max is %d\n",m);
return 0;
}
int max4(int a,int b,int c,int d)
{
int max2(int a,int b);
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)
{
if(a>b)return a;
else return b;
}

写类似的都编译成功,这个就是不行。。新手分不多不成敬意 c
[解决办法]
max4函数里,m没有定义吧。。。
[解决办法]
最大问题是 你的输入参数为4个,你肯定多输入了一个。
printf("please enter four digits:");
scanf("%d %d %d %d",&a,&b,&c,&d);

[解决办法]

int max4(int a,int b,int c,int d)
{
int max2(int a,int b);
int m; //m没有定义啊
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}

[解决办法]

#include<stdio.h>
int main()
{
int max4(int a,int b,int c,int d);
int a,b,c,d,m;
printf("please enter five digits:");scanf("%d %d %d %d",&a,&b,&c,&d);
m=max4(a,b,c,d);
printf("max is %d\n",m);
return 0;
}
int max4(int a,int b,int c,int d)
{
int max2(int a,int b);
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)
{
if(a>b)return a;
else return b;
}


[解决办法]
m 没有定义、楼主再看 谭浩强的C语言吧
[解决办法]
引用:
m 没有定义、楼主再看 谭浩强的C语言吧

我专门查了下,谭浩强的书里有int m;
[解决办法]
看error 提示
[解决办法]
引用:
引用:m 没有定义、楼主再看 谭浩强的C语言吧
我专门查了下,谭浩强的书里有int m;
呵呵 我也正在研究这个书,共同努力 加油
[解决办法]
楼主这么明显的错误没有看出来吗。错误提示你:m在max4()函数中没有定义,加上,int m;就可以了。再说了明明是输入四个数,为啥写成“five”。。
[解决办法]
#include<stdio.h>
int main()
{
int max4(int a,int b,int c,int d);
int a,b,c,d,m;
printf("please enter five digits:");scanf("%d %d %d %d",&a,&b,&c,&d);
m=max4(a,b,c,d);
printf("max is %d\n",m);


return 0;
}
int max4(int a,int b,int c,int d)
{
int m=0;//m没有定义
int max2(int a,int b);
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
}
int max2(int a,int b)
{
if(a>b)return a;
else return b;
}
//还有以后函数的声明最好放到外面,不然不好看


[解决办法]
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

[解决办法]
引用:
楼主这么明显的错误没有看出来吗。错误提示你:m在max4()函数中没有定义,加上,int m;就可以了。再说了明明是输入四个数,为啥写成“five”。。

++

读书人网 >C语言

热点推荐