这段C语言代码为什么提示Compile Error?

#include <stdio.h>
void CheckData(i)
{
if (i >= 2147483647 || i <= -2147483647)
{
printf("输入数据大于取值\n");
return 0;
}
}
int InputData(i)
{
scanf_s("%d", &i);
return i;
}
int main()
{
int i;
int n = 1, a = 0, b = 0;
for (i = 0; i < n; i++)
{
a = InputData(a);
b = InputData(b);
CheckData(a + b);
printf("%d\n", a + b);
a = 0, b = 0;
}
return 0;
}

#include<stdio.h>
//这里有两个问题,你的函数类型void但是函数里面却return了0,错误的;
//参数没有写类型也是不行的,i的范围就是你if里写的,你让它比较大于它范围的东西是没法成功的,建议用long long类型
//建议改成long long CheckData(long long i)
void CheckData(i)
{
if(i>=2147483647||i<=-2147483647)
{
printf("输入数据大于取值\n");
return 0;
}
//不满足条件最好也返回值,如return 1;
}
//一样的,返回值,参数类型建议改成long long, scanf里格式改成%ld,i传过来也没用,直接在函数里定义i,无参
int InputData(i)
{
scanf_s("%d",&i);
return i;
}

int main()
{
int i;
int n=1,a=0,b=0;//a,b数据类型得改成long long
for(i=0;i<n;i++)//就输入一次不用for也行,当然你后面改n值另说
{
a=InputData(a);
b=InputData(b);
CheckData(a+b);
printf("%d\n",a+b);//%ld
a=0,b=0;
}
return0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-22

函数参数定义时未指定类型;

void函数无返回类型不应return 0;改为return;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网