main ( )
{ int a [11];
int i, j, t,n;
printf (" please input 11 n~:\n ");
for (i=1; i<=n; i++)
scanf(" %d ", &a[i]);
printf(" \n ");
for (i=1; i<=9; i++)
for (j=i+1; j<=10; j++)
if (a[i]>a[j])
{ t=a[i]; a[i]=a[j]; a[j]=t;}
printf (" the sorted numbers: \n ");
for (i=1; i<=10; i++)
printf(" %d ", a[i];
}
上面那个程序中第五行怎么确定n的值啊,还有第8行为什么是i《=9啊?
#include<stdio.h>
int main ( )
{ int a [11];
int i, j, t,n;
printf (" please input 11 n~:\n ");
scanf("%d",&n);//注意n的大小
for (i=1; i<=n; i++)
scanf(" %d ", &a[i]);
printf(" \n ");
for (i=1; i<=9; i++)
for (j=i+1; j<=10; j++)
if (a[i]>a[j])
{ t=a[i]; a[i]=a[j]; a[j]=t;}
printf (" the sorted numbers: \n ");
for (i=1; i<=10; i++)
printf(" %d ", a[i];)
return 0;
}
这样保证行了。
您既然定义a[11],那么最大的a[n]=a[10],a[11]无意义。
所以n=10。
程序的后半部分是排序,所以,i=9时,表示的是倒数第二个数。
以下程序通过测试.
#include <stdio.h>
int main()
{
int a[11];
int i, j, t, n; //要用英文半角标点.. 注意t后面的那个逗号.
printf (" please input 11 n~:\n ");
for (i=1; i<=10; i++) //数组长度为11. 所以最大下标为10.
scanf("%d", &a[i]);
printf(" \n ");
for (i=1; i<=9; i++) // 冒泡法比较a[i]和a[j]. 最后只要比较a[9]和a[10].
for (j=i+1; j<=10; j++)
if (a[i]>a[j])
{
t=a[i]; a[i]=a[j]; a[j]=t;
}
printf (" the sorted numbers: \n ");
for (i=1; i<=10; i++)
printf(" %d ", a[i]); //缺少右);
return 0;
}
n=10( i=1,数组有10个数啊,之所以a【11】是习惯,键盘输入10数即可,按回车键)
i<=9,因为i=9时,j=i+1=10是极限了
还有你的程序n=10要先赋值才行,要不然程序出错
int i, j, t,n=10;这样就行了
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息