#include
void SelectSort(int a[],int n)
{
int i,j,temp,min;
问题是在scanf("%d\n",&a[i]);,其实还是识别10个输入数。
问题关键是输入格式,\n,输入完10个数必须要有一个\n,但是单独的\n是不能识别的,所以需要至少加一个字符,引出\n,也就是你误以为的第十一个数。
修改意见:scanf("%d\n",&a[i]);改为scanf("%d",&a[i]);
//该带的括号都带好 注意编码规范
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int a[10],t,i,j;
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]); // \n去掉
}
for(i=0;i<=9;i++)
{
for(j=i+1;j<=9;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<=9;i++)
{
printf("%d ",a[i]);
}
return 0;
}
23 45 67 43 87 88 86
43 87 69
23 43 43 45 67 69 86 87 87 88 Press any key to continue
scanf("%d\n",&a[i]);你这里输入格式不要加‘\n’,直接写scanf("%d",&a[i]);
#include
#include
#define N 10
/* run this program using the console pauser or add your
own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int a[N],t,i,j;
for(i=0;iscanf("%d",&a[i]);
for(i=0;ifor(j=i+1;j if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
for(i=0;iprintf("%d",a[i]);
return 0;
}