一道c程序题目的疑惑

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:55:34
#include "stdio.h"
int add(int x,int y);
int main()
{
int add(int x,int y); // 对被调用的函数的声明 //
int a,b,c;
scanf("%d,%d",&a,&b);
c=add(a,b);
printf("sum is %d",c);
}
int add(int x,int y) // 函数首部 //
{ // 函数体 //
int z;
z=x+y;
return(z);
}
在 visual studio下编译,完全正确,但是,确得不到准确的值,假设,我输入2,3,最后结果应该为5,但确不是这个值,还请大家指教,谢谢
输入2,3,得到的结果确是-858993457,怎么可能呢?

scanf("%d,%d",&a,&b);

这句 只对 a 赋值。。b为初始值。。是很乱的数。。

改成、
scanf("%d",&a);
scanf("%d",&b);

分俩次输入

程序没有错啊int main()
{
int add(int x,int y); // 对被调用的函数的声明 // 这句去掉
int a,b,c;

int add(int x,int y); // 对被调用的函数的声明 //

可以去掉,你在前面已经申明了,不去也不影响程序执行

我这没有visual studio,但在tc中通过这个程序,
试下在#include "stdio.h" 后加上
using namespace std;

你试试把scanf("%d,%d",&a,&b); 中"%d,%d"中间的逗号去掉试试
scanf("%d%d",&a,&b);

最好是用空格,不要用逗号,万一你输入的是全角的逗号,那就很容易出错。

程序没有问题,请详述你的调试过程以及得到的结果.