C语言输入问题

#include<stdio.h>
main()
{
int a;
char b;
long c;
float d;
double e;
scanf("a=%d b=%c",&a,&b);
scanf("c=%ld",&c);
scanf("d=%f e=%lf",&d,&e);
printf("&a=%d\n&b=%c\n",&a,&b);
printf("&c=%ld\n",&c);
printf("&d=%f\n&e=%lf",&d,&e);
}
编译时没错误,但运行时出现debug error,哪里错了,该怎么输入

最好用一个scanf();把所有要输的东西都放进去,因为scanf 是你" "里面 什么样的格式,你在输入的时候必须按照那样的格式
例如:
scanf("%d,%d",&a,&b);那么在输入时就要输a,b 如果是scanf("%d %d",&a,&b);就要这样输:a b
多个scanf 连在一起 我还没用过。所以建议 一个scanf把你要连在一起输的数据 都输进去;程序中输入的时候a= 这些都不必要 可以把程序改了:
scanf("%d %c %ld %f %lf",&a,&b,&c,&d,&e);输入的时候:a b c d e
这样就好了
输出也错了 只需要:printf("a=%d b=%c c=%ld d=%f e=%lf",a,b,c,d,e);以此类推 不需要带上&符号 否则是错误的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-26
不能输出4个5角是因为for (c = 0; c < x * 10 / 5; c++),这个条件,当c等于4的时候,不符合条件,你写的是<4,应该写成<=4,其他几个条件类似,如下图片,你可以debug一步步看看:本回答被网友采纳
第2个回答  2011-03-21
printf("&a=%d\n&b=%c\n", a, b);
printf("&c=%ld\n", c);
printf("&d=%f\n&e=%lf", d, e);

// scanf需要把输入的字符串解释成格式串如”a=%d b=%c“指定的数据类型,如int, char. 然后把转换成的数据结果存放在指定的地址,所以&a, &b需要以变量的地址作为参数传给scanf.

// 而printf要把传给它的各种数据类型的变量的值根据格式串如"&a=%d\n&b=%c\n"中指定的数据格式来输出,如a, b分别与格式串中的%d, %c对应,分别表示输出格式为十进制有符号整数、字符。所以a, b需要把它们的值作为参数传给printf
第3个回答  2011-03-21
如果scanf语句不改,那应该输入a=1 b=1等等,如果为了输入方便,可以把a=,b=,都去掉。
你说的是输出地址,地址有两个字节长,输出的使用要用整形,而不能是浮点型,所以所有的输出类型都应改为%d。已测试可正确输出地址。
第4个回答  2011-03-21
你的scanf用的不好,按你这样的用法,需要输入:
a=1 b=2
类似的格式
你printf的时候使用&a,并不是输出a的值,而是输出a的地址