C语言。。急~!
来源:百度知道 编辑:UC知道 时间:2024/05/29 13:31:16
输入小于10个数的数组。从大到小排列。。我写的哪里错了。?
#include"stdio.h"
void main()
{
int i,j,k, n,a[10];
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<=n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=1;j<=n;j++)
{ if (a[i]<a[j])
k=a[i];
a[i]=a[j];
a[j]=k;}
for(i=0;i<=n;i++)
printf("%d",a[i]);
}
#include"stdio.h"
void main()
{
int i,j,k, n,a[10];
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<=n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=1;j<=n;j++)
{ if (a[i]<a[j])
k=a[i];
a[i]=a[j];
a[j]=k;}
for(i=0;i<=n;i++)
printf("%d",a[i]);
}
#include"stdio.h"
void main()
{
int i,j,k, n,a[10];
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<n;i++) //数组时是从0到n-1的,这里不能等于n
scanf("%d",&a[i]);
for(i=1;i<n;i++) //冒泡排序
for(j=0;j<n-i;j++)
{
if (a[j]<a[j+1]) //注意这里的{}要包括下面的整个交换
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf ("\n");
}