发帖时间:2008-03-17 21:19:45
[楼主] [每日必看] [大字 小字]
要考三级了,买了本谭浩强的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
一点都看不懂~乱码~
2008-03-17 21:20:26
不是乱码啊,这是c语言的程序啊.机器调试都没问题,只是结果不是预料中的结果而已啊.
2008-03-17 21:21:29
C++和C不太一样啊
修改于:3/17/2008 9:27:22 PM
2008-03-17 21:25:43
你才开始学是吧··
2008-03-17 21:27:21
好多没有用的东西···
2008-03-17 21:28:11
是啊,刚开始自学啊.麻烦你帮我指出这个程序到底哪里除了问题啊?怎么不能求出三个数中的最大数?该怎么改啊?谢谢啊
2008-03-17 21:30:20
你把程序写简单点试试看··我认为是正确的··
2008-03-17 21:38:14
then 在哪里
2008-03-17 21:41:39
这个已经够简单了,我在网上搜索了另外一个程序,经过我测试是正确的,比这个复杂多了,我写这个是谭浩强的参考书里面的标准答案啊,可惜结果不正确.这是另外一个正确的,你看看吧
#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
我记得c语言里面好像没有then这个语句啊.你学的其它语言吧?(这个程序是参考书给出的标准答案啊)
2008-03-17 21:44:32
所得税是但是的似的似的按时的撒
修改于:3/17/2008 9:47:35 PM
2008-03-17 21:46:35
这个是调用语句,你后面会学到···用在这个上面就复杂了!你就不你那个比较在和书上对对·就行了!
2008-03-17 21:48:30
scanf("d%,d%,d%",&a,&b,&c);
应该为scanf("%d,%d,%d", &a, &b, &c);
2008-03-17 21:51:57
LZ,抄书上例子要仔细哦,刚开始学习,抄错也正常了,努力.
2008-03-17 21:56:30
14楼对了
修改于:3/17/2008 10:04:51 PM
2008-03-17 22:02:33
#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
按照你的意思改了,可又出现了点问题,那就是如果我输入6 5 1,那么机器显示最大数是6,可我输入1 5 6时,机器居然显示最大数是1,也就是说系统总是把最先输入的数当作最大数,这是为什么呢?谢谢你拉
2008-03-17 22:03:42
你这个程序基本上也对了,可又出现了点问题,那就是如果我输入6 5 1,那么机器显示最大数是6,可我输入1 5 6时,机器居然显示最大数是1,也就是说系统总是把最先输入的数当作最大数,这是为什么呢?谢谢你拉
2008-03-17 22:06:38
scanf("d%,d%,d%",&a,&b,&c);这一句中
d% 改为 %d
2008-03-17 22:12:59
#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
%d之间要,干吗~
2008-03-17 22:55:32
scanf("d%,d%,d%",&a,&b,&c);
2008-03-18 13:17:37
scanf("d%,d%,d%",&a,&b,&c);
各个参数之间是用 ,号隔开的,那输入参数时候也要用,隔开了啊.你要输入空格,那就用scanf("d% d% d%",&a,&b,&c);
2008-03-18 13:18:40
C语言是7年前学的
语法已经忘记了
提几个想法
1.比较三个数没必要设4个变量
2.我记得math类应该有max函数
3.你刚开始学直接用简单的CIN,COUT就可以了
PRINTF和SCANF等你学到stream的概念再用
4.注意代码规范
if后的语句就算只有一句也要加大括号
5.注意参数的传递方式和引号的位置
2008-03-18 13:55:01
24楼是对的```
2008-03-18 16:27:25