error C2143: syntax error : missing ';' before ')'

#include<stdio.h>
int main()
{int a[10];
int i,j,t;
printf("请输入十个数字:\n");
for(i=0;i<10,i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("从小到大排列是:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
怎么就错了呢……

第1个回答  2012-10-14
for(i=0;i<9-j;i++) 这儿出错了,是分号不是逗号,好好看看你的程序。你在编译器上调试会给你提示错误的行号滴,自己要养成调试的习惯。看出错提示

error C2143: syntax error : missing ';' before ')' 翻译为中文就是:语法错误:在右括号)前丢失了个分号; 你的逗号改为分号就可以了 for(i=0;i<9-j;i++)追问

哦哦,运行了,但运行时,假设输入11 12 13 14 15 16 17 18 19 20后,为什么从小到大排列时时11121314151617181920呢……中间没间隔…………

追答

printf("%d",a[i]); 改为printf("%d ",a[i]);这下就有间隔了

第2个回答  2012-10-15
#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("请输入十个数字:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("从小到大排列是:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}本回答被提问者和网友采纳
相似回答