我这程序为什么运行不越来?

来源:百度知道 编辑:UC知道 时间:2024/06/18 08:20:19
#include <stdio.h>
void main()
{
int x,y,z,i,j,t;
int a[2];
printf("enter three numbers\n");
scanf("%d%d%d",&x&y&z);
a[0]=x;
a[1]=y;
a[2]=z;
for(i=0;i<=2;j++)
for(j=i+1;j<=2;j++)
if(a[i]<a[j])
{
t=a[j];
a[j]=a[i];
a[j]=t;
}
printf("the result is%d",a[i]);
}

1.scanf("%d%d%d",&x&y&z); 应该是
scanf("%d%d%d",&x, &y, &z);
你少了两个逗号

2.for(i=0;i<=2;j++)后面应该是 i++ ,你写成了 j++ 。

3.改正 问题 1、2后,看以下两句:
for(i=0;i<=2;i++)
for(j=i+1;j<=2;j++)
当 i=2 的时候,j的初值就是 3 了,a[3] 就会溢出。所以应该改为
for(i=0;i<2;i++)
for(j=i+1;j<=2;j++)

4.在这句printf("the result is%d",a[i]);运行的时候,for循环已经结束了, i 的值为2(改正了上面两个错误之后的结果),所以相当于只打印 a[1] 的值。

两个小问题
scanf("%d%d%d",&x&y&z); 改成scanf("%d%d%d",&x,&y,&z); 逗号
for(i=0;i<=2;j++) 这句应该是i++吧?
a[2]改成a[3];
改完之后是这样
#include <stdio.h>
void main()
{
int x,y,z,i,j,t;
int a[3];
printf("enter three numbers\n");
scanf("%d%d%d",&x,&y,&z);
a[0]=x;
a[1]=y;
a[2]=z;
for(i=0;i<=2;i++)
for(j=i+1;j<=2;j++)
if(a[i]<a[j])
{
t=a[j];
a[j]=a[i];
a[j]=t;
}
printf