这二个C程序错在什么地方?

来源:百度知道 编辑:UC知道 时间:2024/09/26 00:26:11
第一个是依次将10个数输入,要求将其中最大的数打印出来。代码如下:
#include<math.h>
#include<stdio.h>
void main()
{
int n=1,a,max;
printf("请依次输入10个数字:\n");
scanf("%d",&max);
while(n<=10)
{
scanf("%d",&a);
if(max<a)
max=a;
n=++1;
}
printf("最大数为:%d\n",max);
}
第二个是有三个数a,b,c,要求按大小顺序把它们打印出来。代码如下:
#include<math.h>
#include<stdio.h>
void main()
{
int a,b,c;
printf("请输入三个数字:\n");
scanf("%d%d%d",&a,&b,&c);
if(a<b) a=a+b,b=a-b,a=a-b;
else if(a<c) printf("%d%d%d\n",c,a,b);
else if(c>b) printf("%d%d%d\n",a,c,b);
else printf("%d%d%d\n",a,b,c);
}

在单位没有VC++6.0。在纸上写出来的,没法试。请大家指出错误之处。谢谢先!!!
第一个程序的错,有二处,n不能等于10,否则要输入11个数,这个我没发现。谢谢有一位朋友提醒我。n的自增运算属于我输入错误。关键是第二个程序。只有一位朋友答出了我的错误所在,就是将第一个else if语句中的else去掉,整个程序就正确了。所以我只能选这位朋友的答案啦,谢

第一个是依次将10个数输入,要求将其中最大的数打印出来。代码如下:
#include<math.h>
#include<stdio.h>
void main()
{
int n=1,a,max;
printf("请依次输入10个数字:\n");
scanf("%d",&max);
while(n<=10)
{
scanf("%d",&a);
if(max<a)
max=a;
n=++1; //该行不对++和--只能用于变量,不能用于常量。
} //n=++1应该为n++

第二个是有三个数a,b,c,要求按大小顺序把它们打印出来。代码如下:
#include<math.h>
#include<stdio.h>
void main()
{
int a,b,c;
printf("请输入三个数字:\n");
scanf("%d%d%d",&a,&b,&c);
if(a<b) a+=b,b=a-b,a-=b;
if(a<c) a+=c,c=a-c,a-=c;
if(b<c) b+=c,c=b-c,b-=c; //三个if语句用于对abc按大小排序
printf("%d,%d,%d\n",a,b,c);
}

你原来的程序把第一个else if 改成if 就对了。
a+=b,b=a-b,a-=b是逗号表达式,是对的。可以这样写。
#include<math.h> 是没有必要写的。没有用到数学函数。

第一个
#include<math.h>
#include<stdio.h>
void main() <