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

[求助]新人C语言问题

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

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

针对上面的问题,我写出来下面的代码
#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 回复
#2
极限堂2007-10-16 16:47

顶上去
高手帮忙看看啊~~

#3
nghf2007-10-16 16:51

分开两个输入数据是用空格分的吧,回车也行
你在程序中并没有处理输入的",".......类型转换(强制的)?
C我也学得不好

#4
极限堂2007-10-16 16:55

#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);

}



我用这样写还是不行啊
愁死我了
谁能帮我解决了啊
最好还有详细的讲解每一步的说明
那我就非常感谢了

#5
nghf2007-10-16 16:58
你试试输入数据的时候只用空格分开,不要用逗号
#6
nuciewth2007-10-16 17:00
看教材先.
#7
zamboninite2007-10-16 17:03
我用4楼的程序 scanf("%d,%d",&amp;a,&amp;b);    %d之间加了个逗号,在vc里运行了下,就可以了。

[此贴子已经被作者于2007-10-16 17:06:09编辑过]


#8
vsky2007-10-16 17:06
注意两个地方
第一,scanf的用法 ,printf("请输入两个数字,用逗号分开:\n");。。。。
第二,printf的用法。
[IMG]C:\Documents and Settings\rock\桌面\未命名.bmp[/IMG]
#9
极限堂2007-10-16 17:08
以下是引用zamboninite在2007-10-16 17:03:06的发言:
我用4楼的程序 在vc里运行了下,是可以的啊

那为什么我在Visual C++ 6.0就不行呢???

我算出来的结果就不对

#10
nghf2007-10-16 17:09
注意你输入的数据格式与程序中的格式,具体参照4楼新的编辑
#11
zamboninite2007-10-16 17:10
以下是引用极限堂在2007-10-16 17:08:03的发言:

那为什么我在Visual C++ 6.0就不行呢???

我算出来的结果就不对

我又编辑了下。

#12
极限堂2007-10-16 17:11
以下是引用zamboninite在2007-10-16 17:03:06的发言:
我用4楼的程序 scanf("%d,%d",&a,&b); %d之间加了个逗号,在vc里运行了下,就可以了。

英雄!!!
终于好了
不过就不明白为什么要加个逗号

#13
zamboninite2007-10-16 17:12
格式问题,看书的时候多注意下就行了
#14
极限堂2007-10-16 17:12
为什么要加个逗号啊???
#15
nghf2007-10-16 17:17

你输入数据的时候是不是像
10,20
这样的?
如果是这样,你的
scanf("%d%d",&a,&b);
就只能读到10和","
","会按它对应的ASCALL码转换成整型
我的理解是这样的
欢迎大家指正

#16
zamboninite2007-10-16 17:19

在你输入两个数字的时候 用的就是逗号,然后显示。 格式应该于之对应。 大概就这样。

#17
koychow2007-10-16 19:37

看来现在的大学动手很差呀!
还是没有读懂书!
加油哟!

#18
jzldf1802007-10-16 20:18
学习
#19
playchao2007-10-16 20:40

#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);

}

#20
zhouxiang2007-10-16 20:50
因为你的 printf("请输入两个数字,用逗号分开:\n");用户就两个数字,用逗号分开。
而scanf("%f%f",&a,&b);只能接受两个数字,用空格或Tab键或Enter键分开
应改为scanf("%f,%f",&a,&b);
#21
koman2007-10-16 21:13
以下是引用极限堂在2007-10-16 16:35:53的发言:

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

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

}

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

#22
xinfei12122007-10-16 21:16
呵呵 呵呵
#23
zacom2007-10-16 21:20
你输入什么数字
#24
ncb1232007-10-16 21:28
我同意七楼的说法1
#25
woainizhang2007-10-16 21:43
好像有问题
#26
woainizhang2007-10-16 21:44
我好长时间没学了
#27
hjlwlyhjl2007-10-16 21:44

#include<stdio.h>
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);

}

这样写没问题,在此要注意两点:1)scanf()输入函数接收屏幕输入时,其格式一定要与你""中的格式一样.即此题输入的格式为: 3.0:1.1
 2) printf()函数输出数值时不能带&,否则将输出的是变量的地址,而不是变量的值.

#28
hjlwlyhjl2007-10-16 21:47

上面的程序中我忘了改printf("请输入两个数字,用逗号分开:\n");中的"逗号"为"冒号"了,你能懂什么意思就行了!

#29
hh4429044692007-10-16 22:08
要注意格式,当你用scanf("%f%f",&a,&b);时,输入两个 数时中间不可以用","你可以用空格、回车以用TAB。
当你的语句格式为scanf("%f,%f",&a,&b);时,输入两 个数时中间就还要用一个"," 因为系统会把","默认为普通字符,需要按原样输入.
#30
zhouke2007-10-16 22:13
回复:(极限堂)[求助]新人C语言问题
scanf("%d,%d",&amp;a,&amp;b);试试
#31
hh4429044692007-10-16 22:14
还有就是printf输出语句不能加"&"符号,楼上也有人说了."&"是取地址符号,在scanf中使用是因为在下面的语句中要取用户输入的两个
值,要从内存中调取,所以要加"&".
#32
sunsheldon2007-10-16 22:15
#33
tcxiang2007-10-16 22:25
printf("q=%f\n",&q);
printf("w=%f\n",&w);
printf("o=%f\n",&o);
printf("p=%f\n",&p);



q,w,o,p前不要加地址符号&
#34
无敌小欣2007-10-16 22:26
回复:(极限堂)[求助]新人C语言问题

T T .. 偶也新手..明天考试了
正好也想问这个问题呢~` 大家解释的很明白 哈哈 谢谢拉

#35
dengfu20002007-10-16 22:28
哼!
#36
jsq1702007-10-16 23:31
@@@@@@
#37
w158249306722007-10-16 23:40

有两个错误:
你要求的是用逗号分开输入的数字,所以“scanf语句”应该这样写:scanf("%d,%d",&a,&b);
输出语句应该这样写是:printf("q=%d\n",q);
printf("w=%d\n",w);
printf("o=%d\n",o);
printf("p=%d\n",p);

#38
zxc19982007-10-17 06:52

最简单的办法:
把scanf("%d%d",&a,&b);
语句分成两个语句写,肯定没问题,输入的时候,在两个数据之间加入回车

#39
jzldf1802007-10-17 09:37
学习...
#40
csfl0072007-10-17 10:05
好好看书,多用步进调试肯定能作出来。
#41
xiaofkg2007-10-17 10:27
输入格式出错 printf("q=%f\n",q);
printf("w=%f\n",w);
printf("o=%f\n",o);
printf("p=%f\n",p);
#42
火乍弓单2007-10-17 13:20

#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);

}

#43
风流上进2007-10-17 13:42

#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);

}

这样写

#44
jonna2007-10-17 16:57
回复:(极限堂)以下是引用zamboninite在2007-10-16 ...
格式的问题,LZ把scanf的用法再看看吧。
#45
nighting2007-10-17 17:08
#include <stdio.h>
main()
{
float a,b;
printf("Please input two numbers:");
scanf("%f %f",&a,&b);
printf("a+b=%g\n",a+b);
printf("a-b=%g\n",a-b);
printf("a*b=%g\n",a*b);
printf("a/b=%g\n",a/b);
getch();
}
#46
zmzlx2007-10-18 09:03

#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);

}
貌似可以啊!

#47
gaoamining2007-10-18 09:13

#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);

}

这样不就可以了。。
还要小心你的输入法是不是中文的。

#48
bbyin2007-10-18 09:14

浇下水

#49
gaoamining2007-10-18 09:37

#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);

}

还有小心在编程时不要用中文输入

#50
singlewolf2007-10-18 10:59
学习中…………
#51
abin72302007-10-18 12:12

输出格式错误,去掉输出格式中的&字符.就可以了.

12