不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

软件和网站开发以及相关技术探讨
回复
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#1

帖子 mymathersname » 2008-10-29 1:32

题目是谭浩强书中的作业,我自学C,我本是学医的,呵呵……

题目是求出输入三个数最大值:

我写的代码是:
#include <stdio.h>
int main ()
{int a,b,c,max;
printf ("Please input a,b,c: \n");
scanf ("% d,% d,% d",&a,&b,&c);
max=a;
if (max<b)
max=b;
if (max<c)
max=c;
printf ("The largest number is:% d.\n",max);
}

结果显示是:(比如我输入的是:12,13,14
134514025
我没有看出错误来,谢谢朋友们……
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#2

帖子 cnkilior » 2008-10-29 8:40

12,13,14

scanf要按照格式输入。
你的输入12 13 14这样看看
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#3

帖子 mymathersname » 2008-10-29 8:44

哦,谢谢先…… :em02
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#4

帖子 mymathersname » 2008-10-29 8:49

好像还是不行,输出和原来是一样的……谢谢你的建议……
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
ccqqwheat
帖子: 81
注册时间: 2007-10-04 18:46

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#5

帖子 ccqqwheat » 2008-10-29 9:07

max=a;
if (max<b)
max=b;
if (max<c)
max=c;

语法??
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#6

帖子 自由建客 » 2008-10-29 10:19

scanf ("% d,% d,% d",&a,&b,&c);
引号中的空格和逗号等都是不能乱用的。

代码: 全选

scanf ("%d%d%d",&a,&b,&c);
zyywe
帖子: 6
注册时间: 2007-12-13 17:52

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#7

帖子 zyywe » 2008-10-29 11:54

在输出,和输入的语句中

代码: 全选

%和d之间没有空格
写代码要仔细,每一个符合都有它特殊的意义
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#8

帖子 HuntXu » 2008-10-29 12:23

难怪1楼的代码看着怪怪的...多了几个空格...还以为是排版失误...
HUNT Unfortunately No Talent...
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#9

帖子 mymathersname » 2008-10-29 13:01

问题解决了,以上不是空格的问题

#include <stdio.h>
int main ()
{
int a,b,c,max;
printf ("Please input a,b,c:%d,%d,%d\n");
scanf ("%d,%d,%d",a,b,c);
max=a;
if (max<b)
max=b;
if (max<c)
max=c;
printf ("The largest number is:%d.\n",max);
}
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#10

帖子 HuntXu » 2008-10-29 13:06

怎么你的scanf是直接a、b、c? :em20
HUNT Unfortunately No Talent...
头像
mymathersname
帖子: 2870
注册时间: 2008-09-18 23:40
系统: Ubuntu 15.04 x64
来自: Mars

Re: 不知道为什么输出是错误的,c的高手麻烦帮解决下,正在学习C,谢谢了

#12

帖子 mymathersname » 2008-10-29 13:26

哦,不好意思,闹笑话了,初学者嘛,正常……
是&a,&b,&c :em06 :em06 :em06
转移各位校内,百毒朋友,把目标转向twitter和facebook,别总看局域网的内容
其实从那么多的ubuntu发行版和fedora的各个发行版中,我们不难看出,linux的进步是惊人的,从长久的发展规律和更加深远的意义来看,linux桌面版与微软的距离在缩小,这是值得庆幸的……
ubuntu是半年还去偷情一次的初恋。fedora是一生挚爱的正室。debian是和正室同等地位的妾侍。rh/cent是用来偷窥的正室大姐姐。suse是一夜夫妻百二蚊。gentoo是有内涵的才女。arch是久闻其名不敢接触的怪叔叔。其余发行版,我是帝皇它们是屁民,无福宠幸。
回复