这里的变量 asset 定义成 double 和 float 两种不同类型时 结果完全不同 不知道是为什么 甚至double类型 数值就成0了 求助!
这里我想请问一下 后续的录入 char c 为什么不是在打印前面两个变量后 录入呢?
求助大家!!
第一个问题,scanf读取double类型的值,需要用lf修饰符,应该是:scanf("%d %lf", &age, &asset)
第二个问题,没看明白你要表达什么?你的问题是?
谢谢你
我的问题是 按照我的想法 第二个程序 应该是先打印出变量 a b 的值 然后再录入 c的值 再打印c
可实际情况却是: 程序需要一次录入 a b c 的值 然后一次性全部打印
@伴龙的呼吸: scanf的用法是:遇到format格式之后的空白字符会停止,你输入完[3,4回车]之后,实际上你是输入了[3,4\n]这四个字符,scanf遇到\n会停止,当你下次调用scanf的时候,输入缓冲区里有一个[\n]回车可以读取,所以c变量的值就是回车,你看到的现象就是只输入一次,就把原本需要输入两次的结果都打印出来了
int main(){
int a, b;
scanf("%d,%d", &a, &b);
printf("%d %d\n", a, b);
printf("input c\n");
char c;
scanf("\n%c", &c);
printf("%d\n",c);
return 0;
}
更加常用的做法是:
int main(){
int a, b;
scanf("%d,%d", &a, &b);
printf("%d %d\n", a, b);
printf("input c\n");
char c;
getchar(); //吃掉回车符
scanf("%c", &c);
printf("%d\n",c);
return 0;
}
麻烦采纳一下~~~
@wengle: 好的!!!!!谢谢你!!!!!!!