C代码问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:19:34
#include"stdio.h"
main()
{ int a[11],i,j,t;
printf("Input 10 numbers:");
for(i=1;i<=11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=1;i=10-j;i++)
if(a[i]>a[i+1])
{ t=a[i],a[i]=a[i+1],a[i]=t;}
printf("the sorted is:\n");
for(i=1;i<=11;i++)
printf("%d",a[i]);
}
请大家帮帮忙啊,谢谢了啊,上面的代码我都不知道问题出在哪?不能输出结果啊!

建议你去重新看一看for语句的用法。另外,最好说明程序功能把代码加上注释,这样大家能够更好的帮助你。

1.#include"stdio.h" 最好写成 #include <stdio.h> 注意空格
用""和<>的意思是不同的,""会首先再你要编译的源文件所在目录下寻找stdio.h,然后再去编译环境中的头文件目录中寻找;而<>直接去编译环境中的头文件目录中寻找。如果此时你的当前目录下,也就是源文件所在目录下,碰巧有一个stdio.h,而它又不是标注的C库的头文件,就会出错。

2.{ t=a[i],a[i]=a[i+1],a[i]=t;}
如果你要进行交换的话,上面的代码应是{ t=a[i],a[i]=a[i+1],a[i+1]=t;}
而且for应该有语句块
for(j=1;j<=9;j++)
{
for(i=1;i=10-j;i++)
{
if(a[i]>a[i+1])
t=a[i],a[i]=a[i+1],a[i+1]=t;}
}
}

再调试一下吧。
百度一下,你就知道。
祝你好运。

for(i=1;i<=11;i++) 改成 for(i=0;i<=10;i++)