c语言问题,为什么出错?

/* 4 */
#include <stdio.h>
int main ()
{
int a,b,c;
printf("Please enter 3 numbers:");
scanf("%d,%d,%d",&a,&b,&c);
printf("a+b+c=%d\n", a+b+c);
printf("a*b*c=%d\n", a*b*c);
return 0;
}

输入的内容,要和scanf的括号里,双引号下面的一致才行,所以必须输入「数字(英文半角逗号)数字(英文半角逗号)数字」然后回车才行。

实测截图如下:

如有帮助,烦请点采纳,谢谢!

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-12
代码本身没有问题,除非执行scanf()函数时,键盘输入的数据格式不对,建议将该语句改为
scanf("%d%d%d",&a,&b,&c);响应该语句时,输入三个整数,中间用空格隔开即可。比如
36 25 14追问

scanf行中%d之间的,去掉就好了,是为啥?

本回答被提问者采纳

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

为什么c语言程序在运行时出现错误?
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

C语言计算结果出错的原因?
检查程序时有时即使调试通过了,在接收大量样例测试时也会出现一些错误,以下是这些错误的其中很小一部分总结。1、数组越界 调用数组元素时使用的索引号超过数组所能提供的索引号的范围。2、未考虑到运算中被除数为0的情况 目前未遇到。3、堆栈溢出(stark overflow)触发原因:(1)变量申请大空间内存(...

C语言代码出错
1.对于新手来说,最开始犯的错误就是容易忘记写Main函数头。不管是C 还是java都是不能缺少的。一切语言从main开始。下面报错会提示你找不到头。2.然后就是 ; 号了,虽然很不起眼但是却很重要,缺少了就不可以。不仅仅是缺少了不行就是你输入的是中文状态下的分号依然不可以。C对中文还是很敏感...

c语言:如图,请问一下哪里出错了?
首先解答一下这个C语言代码出错的原因:第一个gets未定义:出现这个错误一般是没有包含相应的头文件,或者库里没有这个函数。这里应该是没有这个函数。gets(char *dest)是一个老的库函数,采用这个函数存在越界的安全隐患。它只有一个参数,如果输入的字符个数超过dest内存空间,程序可能失败,也可能被黑客...

c语言编程,编译无错,运行出错
1 你所谓的运行时问题,即栈溢出(stack overflow), 解决方法是使用c语言的malloc函数(相当于C++的new操作符)在堆上分配内存(当然最后根据输出文件的答案来看,你确实数据给大了)2 逻辑问题,如楼上各楼所说:s[i]=s[i-1]+A[i];而不是s[i]=s[i-1]+s[i];你中学数学知识都忘了。。

c语言输出有问
1,可能在输出的时候占位符数字设置的不太好,导致数字与文字没对齐 2,可能第一句输出语句里面"\\n"没有写好或者漏写,导致第一行输出没有换行 3,为了更加美观的显示你的输出结果,推荐使用一个清屏函数,调用此函数一次就会把当前屏幕内容清空,如果使用的是vc6.0编写C语言代码,可以通过#include<...

C语言的一个程序运行的问题..为什么反显会出错.请大家赐教
对于程序本身没错,编译通过,当你输入数据时,程序对数据进行计算,输入的数据超出-32768~32767时,输入数据错误,也就是说,你输入的数是0~65535时就是正确的数据,再解释,从32767~65535系统认为其为负数,也是正确的数据。在由就是为什么没有显示数据错误的提示,这也不难理解,首先对于数据空间j...

为什么我的c语言编译不了,一编译就出错?
出现这种错误的原因主要是你定义了相同函数名字的函数,比方说在MAIN.C里面定义了delay()函数,然后在APP.C里面又定义一个delay()函数,则会出现这种警告或错误,将同名函数修改名字即可。_delay这个函数重定义了,说明这个函数名定义了两遍。检查一下,如果没有的不要把函数体(函数定义)放在头文件...

c语言,大数相加,求解释我写的为什么出错了?
存在两个int main(void)、两个char a[1000]={'0'},b[1000]={'0'};,这肯定错。根据gets(a); gets(b);这样的输入,a、b中存放的是字符,每一个字符的编码都大于等于48,用>=10判断是否有进位显然是错误的。revers函数库里有,没有必要自定义一个,免得出错。下面写一个供参考——代码...

相似回答