使用谭浩强书上的原代码为啥老是会出现类型错误,代码如下
#include <stdio.h>#include <stdlib.h>
int max(int x,int y)
{
int z;
if(x>y)
z=x;
else
z=y;
return (z);
}
int main()
{
int max(int x,int y);
int a,m,n,i;
printf("enter 10 integer numbers:");
for (i=0;i<10;i++)
{
scanf("%d",&a);
}
printf("\n");
for(i=0,m=a,n=0;i<10;i++)
{
if (max(m,a)>m)
{
m=max(m,a);
n=i;
}
}
printf("The largest number is %d\n it is the %d number.\n",m,n,n+1);
return 0;;
system("pause");
}
前面那个max函数老是会出现类型错误,求大神指教
printf("The largest number is %d\n it is the %d number.\n",m,n,n+1);
這裡面只有兩個%d,卻要輸出三個數(m,n,n+1)
提出原始的错误提示,另外3楼说的问题也存在 jack772025 发表于 2019-3-7 22:27
printf("The largest number is %d\n it is the %d number.\n",m,n,n+1);
這裡面只有兩個%d,卻要輸出三個 ...
这个问题应该不是主要的问题,我改过了,还是出现类型错误 BngThea 发表于 2019-3-8 08:51
提出原始的错误提示,另外3楼说的问题也存在
具体是什么意思,要如何去修改呢?
拉普拉斯巴鲁 发表于 2019-3-8 12:21
具体是什么意思,要如何去修改呢?
printf("The largest number is %d\n it is the %d number.\n",m,n,n+1);
改成
printf("The largest number is %d\n it is the %d number.\n",m,n+1);
然后程序本身没有什么问题,可能是你编译器的错误 拉普拉斯巴鲁 发表于 2019-3-8 12:21
具体是什么意思,要如何去修改呢?
贴出编译器给出的错误提示和运行环境, 这样大家才好帮你改 问题很多
1.前面已经有人提到了printf()参数多了一个n
2.main()函数里申明max的原型
3.system("pause")居然放在return 0;后面
如果你是作为新手的话可以去改改你的代码
1.把你的max函数改的更简练一点
2.不要使用scanf()来得到测试数据, 试着去学会用文件或着命令行管道
3.不要再用system("pause") 换成 getchar()
4.格式问题
5.for()里面可以更省
页:
[1]