问题
int a,b;float x,y;
char c1,c2;
scanf("%d%d%f%f%c%c\n",&a,&b,&x,&y,&c1,&c2);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%f\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);
哪里出问题了C1与c2有问题、还有scanf("%d%d%f%f%c%c\n",&a,&b,&x,&y,&c1,&c2);改写成三个scanf 一样吗?
把char定义放在int,float之前就可以解决这个问题(至于这是什么原因造成的我就不知道了,我是调试了才知道问题出在这里),还有 scanf输入完不需要“\n”回车换行,用到char就要考虑到空格逗号这些也算一个字符,所以要注意。
#include <stdio.h>
int main(void)
{
char c1,c2;
int a,b;
float x,y;
scanf("%d,%d,%f,%f,%c,%c",&a,&b,&x,&y,&c1,&c2);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%f\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);
return 0;
} ANDES 发表于 2015-4-16 10:00
把char定义放在int,float之前就可以解决这个问题(至于这是什么原因造成的我就不知道了,我是调试了才知道 ...
谢谢好像还是不行啊,题目是用scanf 函数输入a=3,b=7,x=7.5,7=71.57,c1='A',c2='o' %d%d%f%f%c%c这里用空格分开,输入时也用空格 拆成三个scanf也一样的, 本帖最后由 ANDES 于 2015-4-17 09:48 编辑
学习古语 发表于 2015-4-16 21:10
谢谢好像还是不行啊,题目是用scanf 函数输入a=3,b=7,x=7.5,7=71.57,c1='A',c2='o'
逗我么?怎么个不行法,我调试好的运行正确才发的,你告诉我不行。{:5_94:}
还有,更正下,刚刚我试了,在我写的程序,把char定义的放在int,float后面也是可以的,所以我也不知道你那程序哪里错了。#include <stdio.h>
int main(void)
{
int a,b;
float x,y;
char c1,c2;//char 放在这里没有问题
scanf("%d,%d,%f,%f,%c,%c",&a,&b,&x,&y,&c1,&c2);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%f\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);
return 0;
}
ANDES 发表于 2015-4-17 08:58
逗我么?怎么个不行法,我调试好的运行正确才发的,你告诉我不行。
还有,更正下,刚刚我试了, ...
按照你的程序运行的可以的, 但是 int main(void) 改成void main()就是不行他们有何区别? 学习古语 发表于 2015-4-17 20:31
按照你的程序运行的可以的, 但是 int main(void) 改成void main()就是不行他们有何区别?
区别在scanf("%d%d%f%f%c%c\n",&a,&b,&x,&y,&c1,&c2);中"%d%d%f%f%c%c\n"你最后多写了个\n 本帖最后由 ANDES 于 2015-4-18 12:02 编辑
学习古语 发表于 2015-4-17 20:31
按照你的程序运行的可以的, 但是 int main(void) 改成void main()就是不行他们有何区别?没区别,int 主要是为了要返回一个值,void是不需要返回一个值。自己去把最基础的学扎实吧。 本帖最后由 QQ[我在线上] 于 2015-4-19 14:33 编辑
{:1_1:} 签到,回帖赚鱼币 签到,回帖赚鱼币 签到,回帖赚鱼币 谢谢 初学者要细心呀:lol:
页:
[1]