导航:PCPOP.COM > 泡泡俱乐部 > 小说分区 > 帖子

c语言高手进入啊,帮我看看程序哪里有错啊?

发帖时间:2008-03-17 21:19:45
功能:[收藏] [违规举报] 【复制地址】 [点420/回28]
分页:第一页 [1-50] 下一页 尾页 [新开阅读] [只看楼主] [刷新本帖]

[楼主] [每日必看] [大字 小字]
要考三级了,买了本谭浩强的c语言书籍自学,今天碰到一个题是叫我"编写一个c程序,输入a,b,c3个值,输出其中最大者",于是我把参考书上提供的程序写上去了,一切顺利,我输入6,5,1以后再回车,出现的结果居然是-858993460,这是为什么啊?
我用的环境是Visual C++6.0
程序如下
#include <stdio.h>
void 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",max);
}
修改于:3/17/2008 9:20:36 PM
点我试试,注意左边列表哦:
高手 程序 哪里也

中级泡友---四川省省帅蜀国】 戴尔笔记本惊喜价仅¥6199!咨询:800-858-2685

[1楼]:
一点都看不懂~乱码~
2008-03-17 21:20:26
[2楼]:
不懂~~~
2008-03-17 21:20:54
[3楼]回1楼:
不是乱码啊,这是c语言的程序啊.机器调试都没问题,只是结果不是预料中的结果而已啊.
2008-03-17 21:21:29
中级泡友---四川省省帅【楼主】【蜀国
[4楼]:
C++和C不太一样啊
修改于:3/17/2008 9:27:22 PM
2008-03-17 21:25:43
高级泡友---jsc0311晋帮
[5楼]:
你才开始学是吧··
2008-03-17 21:27:21
[6楼]:
好多没有用的东西···
2008-03-17 21:28:11
[7楼]回6楼:
是啊,刚开始自学啊.麻烦你帮我指出这个程序到底哪里除了问题啊?怎么不能求出三个数中的最大数?该怎么改啊?谢谢啊
2008-03-17 21:30:20
中级泡友---四川省省帅【楼主】【蜀国
[8楼]:
你把程序写简单点试试看··我认为是正确的··
2008-03-17 21:38:14
[9楼]回7楼:
then 在哪里
2008-03-17 21:41:39
[10楼]回8楼:
这个已经够简单了,我在网上搜索了另外一个程序,经过我测试是正确的,比这个复杂多了,我写这个是谭浩强的参考书里面的标准答案啊,可惜结果不正确.这是另外一个正确的,你看看吧
#include <stdio.h>  
int max(int x,int y);  

void main()  
{  
int a,b,c,t;  
printf("enter a,b,c:");  
scanf("%d %d %d",&a,&b,&c);  

t=max(max(a,b),c);  
printf("max=%d\n",t);  
}  


int max(x,y)  
{  
int max;  
if(x>=y) max=x;  
else max=y;  

return max;  
2008-03-17 21:42:38
中级泡友---四川省省帅【楼主】【蜀国
[11楼]回9楼:
我记得c语言里面好像没有then这个语句啊.你学的其它语言吧?(这个程序是参考书给出的标准答案啊)
2008-03-17 21:44:32
中级泡友---四川省省帅【楼主】【蜀国
[12楼]回11楼:
  所得税是但是的似的似的按时的撒
修改于:3/17/2008 9:47:35 PM
2008-03-17 21:46:35
[13楼]:
这个是调用语句,你后面会学到···用在这个上面就复杂了!你就不你那个比较在和书上对对·就行了!
2008-03-17 21:48:30
[14楼]:
scanf("d%,d%,d%",&a,&b,&c); 
应该为scanf("%d,%d,%d", &a, &b, &c);
2008-03-17 21:51:57
高级泡友---hzyw
[15楼]:
14楼正确
2008-03-17 21:54:16
忠诚泡友---firefly325
[16楼]:
LZ,抄书上例子要仔细哦,刚开始学习,抄错也正常了,努力.
2008-03-17 21:56:30
高级泡友---hzyw
[17楼]回7楼:
14楼对了
修改于:3/17/2008 10:04:51 PM
2008-03-17 22:02:33
[18楼]:
#include <stdio.h> 
void main() 

int a,b,c,max; 
printf("please input a,b,c:\n"); 
scanf("%d,%d,%d",&a,&b,&c);  
if(a<b) 
  max=b;
else
  max=a; 
if(max<c) 
  max=c; 
  printf("the largest number is %d",max); 
}

这样改应该比你的更简单...应该没问题...
修改于:3/17/2008 10:04:21 PM
2008-03-17 22:03:03
[19楼]回14楼:
按照你的意思改了,可又出现了点问题,那就是如果我输入6 5 1,那么机器显示最大数是6,可我输入1 5 6时,机器居然显示最大数是1,也就是说系统总是把最先输入的数当作最大数,这是为什么呢?谢谢你拉
2008-03-17 22:03:42
中级泡友---四川省省帅【楼主】【蜀国
[20楼]回18楼:
你这个程序基本上也对了,可又出现了点问题,那就是如果我输入6 5 1,那么机器显示最大数是6,可我输入1 5 6时,机器居然显示最大数是1,也就是说系统总是把最先输入的数当作最大数,这是为什么呢?谢谢你拉
2008-03-17 22:06:38
中级泡友---四川省省帅【楼主】【蜀国
[21楼]:
scanf("d%,d%,d%",&a,&b,&c);这一句中
d% 改为 %d
2008-03-17 22:12:59
[22楼]:
#include <stdio.h> 
void main() 

int a,b,c,max; 
printf("please input a,b,c:\n"); 
scanf("%d,%d,%d",&a,&b,&c);  
if(a<b) 
  max=b;
 else 
  max=a;
if(max<c) 
  max=c; 
  printf("the largest number is %d",max); 
}

应该这么写就对了
2008-03-17 22:44:53
[23楼]:
%d之间要,干吗~
2008-03-17 22:55:32
[24楼]回20楼:
scanf("d%,d%,d%",&a,&b,&c);  
2008-03-18 13:17:37
高级泡友---hzyw
[25楼]:
来看高手
2008-03-18 13:18:26
高级泡友---LwAr幸福
[26楼]回20楼:
scanf("d%,d%,d%",&a,&b,&c);  
各个参数之间是用 ,号隔开的,那输入参数时候也要用,隔开了啊.你要输入空格,那就用scanf("d% d% d%",&a,&b,&c);  
2008-03-18 13:18:40
高级泡友---hzyw
[27楼]:
C语言是7年前学的
语法已经忘记了
提几个想法
1.比较三个数没必要设4个变量
2.我记得math类应该有max函数
3.你刚开始学直接用简单的CIN,COUT就可以了
  PRINTF和SCANF等你学到stream的概念再用
4.注意代码规范 
  if后的语句就算只有一句也要加大括号
5.注意参数的传递方式和引号的位置
2008-03-18 13:55:01
[28楼]回20楼:
24楼是对的```
2008-03-18 16:27:25


分页:第一页 [1-50] 下一页 尾页 [新开阅读] [只看楼主] [刷新本帖]
复制本帖地址http://pop.pcpop.com/080317/3951830.html
<< 上一篇 大家节日快乐哦~!~不知道什么节的近来看看就知道
此帖已经被管理员沉默,不再允许回复!

Copyright©2007POPSPACE.COM All rights Reserved
2002-2008 泡泡空间版权所有