只有我的第一行输入请求用户键入值。输入B不要求用户键入并显示错误的总数。
#include <stdio.h>
#include <stdlib.h>
//BASIC CALCULATION INPUT 2 INTEGER ONE BY ONE
int main(int argc, char *argv[])
{
int a,b,c;
//REQUEST ONE INPUT
printf("Integer A: \n");
scanf("%a",&a);
//REQUEST ONE INPUT
printf("Integer B: \n");
scanf("%b",&b);
c=a+b;
//DISPLAY AMOUNT INTEGER
printf("Total: &c",c);
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
你们两个scanf语句都错了! 它应该是 scanf(&#34;%d&#34;,&amp; a); scanf(&#34;%d&#34;,&amp; b); 对于用户输入a和b的整数类型,使用%d。 &amp; a是包含a的值的标识符a的引用(地址)。 并且用户输出整数c的printf语句应该是 的printf(&#34;%d&#34;,C);
答案 1 :(得分:0)
在匹配整数之前,在pip
中添加一个空格以丢弃所有空格。比如
scanf
答案 2 :(得分:0)
您的两个scanf语句都使用错误的格式说明符。因此undefined behaviour。
scanf("%a",&a);
和
scanf("%b",&b);
a
要求标准C中的浮点* as its argument, but you are passing
int * . There's no format specifier
b`。
使用%d
扫描int。
更好的是,avoid scanf
altogether并使用fgets
并改为解析该行。
另一个问题是你的printf声明:
printf("Total: &c",c);
也是错的。它应该是:
printf("Total: %c",c);
打印c
的值。
答案 3 :(得分:0)
没有像%b这样的格式说明符,这就是为什么输入B没有请求用户键入的原因。我认为这会对你有帮助。
#include <stdio.h>
#include <stdlib.h>
//BASIC CALCULATION INPUT 2 INTEGER ONE BY ONE
int main(int argc, char *argv[])
{
int a,b,c;
//REQUEST ONE INPUT
printf("Integer A: \n");
scanf("%d",&a);
//REQUEST ONE INPUT
printf("Integer B: \n");
scanf("%d",&b);
c=a+b;
//DISPLAY AMOUNT INTEGER
printf("Total: &c",c);
system("PAUSE");
return 0;
}