注册 登录
编程论坛 新人交流区

[求助]新人C语言问题

极限堂 发布于 2007-10-16 16:35, 2354 次点击

写一个程序,读取用户从键盘输入的两个数,分别计算和,差,积,商,并在屏幕上显示

针对上面的问题,我写出来下面的代码
#include<stdio.h>
void main()
{
float a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%f%f",&a,&b);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%f\n",&q);
printf("w=%f\n",&w);
printf("o=%f\n",&o);
printf("p=%f\n",&p);

}

我运行出来4个结果都是0
麻烦帮我看一下哪有错误

78 回复
#52
ltdtfking2007-10-18 13:31

你要在scanf里面先用逗号把%f,%f分开

#53
冷月冰凝2007-10-18 13:34

1,应该是数据类型的问题吧,除运算的时候必须是 int类型的。、
2,scanf("%d,%d",&a,&b);加个逗号

#54
牧人蓝兮2007-10-20 04:22
以下是引用zamboninite在2007-10-16 17:03:06的发言:
我用4楼的程序 scanf("%d,%d",&a,&b); %d之间加了个逗号,在vc里运行了下,就可以了。

这个是对的,你要在输入数的时候加逗号隔开就必须这样scanf("%d,%d",&a,&b);

如果你是这样scanf("%d%d",&a,&b);在输入数的时候加空格隔开,好像回车也可以


printf输出不应该有&

[此贴子已经被作者于2007-10-20 4:25:01编辑过]

#55
neillopv2007-10-20 09:28

似乎PQ这些先定义负值再引用

[此贴子已经被作者于2007-10-20 9:32:52编辑过]

#56
whtydn2007-10-20 10:54
看看先
#57
adong22007-10-20 11:17

#include<stdio.h>
void main()
{
int a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%d,%d",&a,&b);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%d\n",q);
printf("w=%d\n",w);
printf("o=%d\n",o);
printf("p=%d\n",p);

}

#58
datao09072007-10-20 11:22
声明都是int型相除后的不到正确答案(小数后面会省略)
#59
a217zxg2007-10-20 11:33
看看调用一下库函数&lt;math.h&gt;
#60
天心水月2007-10-20 12:32

美女,你第一个 程序
1.scanf("%f%f",&a,&b);中,%f%f中间加个逗号;
2.printf("q=%f\n",&q);
printf("w=%f\n",&w);
printf("o=%f\n",&o);
printf("p=%f\n",&p);
我就不知道,你为什么会加那个地址符号&
第二个程序 改下 1 就好了

#61
枫之恋2007-10-20 12:40
是你的scanf和printf是用错误了!
#62
lwl1232007-10-20 14:29
回复:(极限堂)[求助]新人C语言问题



大家好!我是一名新手,我也现在很想学习C编程啊,我想问下您什么学历啊,我的理科和英语都不行啊,我快23了,是不是会有点落后啊,学的时候跟不上你们大家啊,但是我真的好想学,你们谁能给我些指点啊,这个跟英语和数学有很大关系吗?谢谢了!谢谢大家了 !

#63
fanerw2007-10-20 14:42
回复:(lwl123)回复:(极限堂)[求助]新人C语言问题...

年龄不是问题,基础不是问题,只有你真的努力了,这才是问题所在!!

#64
xxvv2007-10-20 14:49

因为占位符和后面的实数位格式要一样,所以加一个逗号即可...或者说用户输入的时候不要敲入","号就OK!


完整代码如下:
#include<stdio.h>
void main()
{
float a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%f,%f",&a,&b);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%f\n",q);
printf("w=%f\n",w);
printf("o=%f\n",o);
printf("p=%f\n",p);

}

#65
feixue10392007-10-20 15:37
还有一点小问题,算除法的话,是不是要强制转换成浮点或者是双精啊,用整型算会影响精确度的。
#66
C语言的深度2007-10-23 11:15

看书``

#67
C语言的深度2007-10-23 11:16
scanf 和printf 没有错误
#68
mswboy12007-10-23 11:24

#include<stdio.h>
void main()
{
float a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%f",&a);
scanf("%f",&b);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%f\n",q);
printf("w=%f\n",w);
printf("o=%f\n",o);
printf("p=%f\n",p);

}
这样就可以了

#69
linsd20012007-10-23 11:26
这样的问题我也遇到过,这里面存在着一个类型转换的问题。两个整数相除,结果不一定是整数。而且scanf()函数的输入时,在格式符的间隔符要与后面的地址引用符的间隔符相一致。
#70
anyboy2007-10-23 11:29
#71
绝地天使2007-10-23 11:35
scanf(%f,%f,&amp;a,&amp;b);输入是前面部分控制的,printf是后面控制的!!!!
#72
TLZL2007-10-23 12:07
实在不行的话分两步 接受字符吧 原程序稍微该一下
#include<stdio.h>

main()
{
float a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%f",&b);
scanf("%f",&a);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%f\n",q);
printf("w=%f\n",w);
printf("o=%f\n",o);
printf("p=%f\n",p);
}
#73
酒浪子2007-10-24 20:23
printf("",)没有&amp; 这个符号!
#74
mischa2007-10-24 20:37

太高深了。。。

#75
求学少年2007-10-24 21:05
q w o p 不用预先赋值吗?
#76
Lee_20072007-10-24 21:21
好常时间没看这个了,虽然我不知道怎么回事,但是建议看看书,我觉得这个问题很简单,
#77
JFan2007-10-24 22:01

#include<stdio.h>
void main()
{
int a,b,q,w,o,p;
printf("请输入两个数字,用逗号分开:\n");
scanf("%d,%d",&a,&b);
q=a+b;
w=a-b;
o=a*b;
p=a/b;
printf("q=%d\n",q);
printf("w=%d\n",w);
printf("o=%d\n",o);
printf("p=%d\n",p);

}

#78
JFan2007-10-24 22:05

既然输入用逗号,

scanf("%d,%d",&a,&b);

这句里格式间也要用逗号.
不输逗号也可以.这样的话,你在输入2个数字时以空格,或enter.TBA..

#79
leemo2007-10-25 11:39
SCANF语句啊,在%f%f之间加逗号啊<
还有输出的时候啊,将&f改为f 就行了
12