输入一个正整数n(1<n≤10),在输入n个整数将它们从大到小排序后输出

如题所述

#include<stdio.h>
int main()
{int n,i,j,t,a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}追问

那个for for 循环不太懂

你先比较的是aj为什么最后输出是ai

追答

简单的排序操作,一般都要采用二重循环的。
重要的不是ai与aj,重要的是i取值0~9,那么a[i]就是a[0]~a[9]
换了j也是一样。只要for(j=0;j<10;j++)printf("%d ",a[j]);是完全一样的。

追问

for循环中是i<n吧

追答

是啊

追问

你写的n-1

追答

第一次的程序是正确的,只是少了一个“]”
#include
int main()
{int n,i,j,t,a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1)
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}

只要for(j=0;j<10;j++)printf("%d ",a[j]);
改为只要for(j=0;j<N;j++)printf("%d ",a[j]);是完全一样的

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-05
#include<stdio.h>
int main(void)
{
int i,n,k,index,j;
int a[10];
printf("Input n:");
scanf("%d",&n);
printf("Input %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
index=k;
for(i=k+1;i<n;i++)
if(a[i]>a[index]) index=i;
j=a[index];
a[index]=a[k];
a[k]=j;
}
printf("After sorted:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
第2个回答  2018-07-02
#include<cstdio>
#include<iostream>
int main()
{
int i,j,n,a[11];
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[j]>a[i])
std::swap(a[i],a[j]);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
return 0;
}

输入一个正整数n(1<n≤10),在输入n个整数将它们从大到小排序后输出
int main(){int n,i,j,t,a[10];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]<a[j+1){t=a[j];a[j]=a[j+1];a[j+1]=t;} for(i=0;i<n;i++)printf("%d ",a[i]);printf("\\n");...

输入一个正整数n(1<n≤10),再输入n个正整数,找出其中的素数,并将它们从...
输入一个正整数n(1<n≤10),再输入n个正整数,找出其中的素数,并将它们从大到小排序后输出 输入一个正整数n(1<n≤10),再输入n个正整数。找出其中的素数,并从大到小排序。... 输入一个正整数n(1<n≤10),再输入n个正整数。找出其中的素数,并从大到小排序。 展开  我来答 3个回答 #热议# ...

输入一个正整数n(1 <n≤10),再输入n 个整数,将最小值与第一个数交换...
int main(void){ int a[10];int n,i,min,max,t;printf("Input n: ");scanf("%d",&n);printf("Input %d integers: ",n);for(i=0;i<n;i++)scanf("%d",&a[i]);min=max=0;printf("After swapped: ");for(i=1;i<n;i++){if(a[i]>a[max])max=i;if(a[i]<a[min...

输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输 ...
int A[10];int cmp(const void * a , const void * b){ return *(int*) a - *(int*)b;} int main(){ int n;cin >> n;for (int i = 0; i < n; i++)cin >> A[i];\/\/ qsort(A , n , sizeof(int) , cmp);for (int i= 0; i < n; i++)cout << A[...

编写程序,输入一个正整数n(1<n≤10),再输入n个整数
include <stdio.h>int main(void){ int n,x[10],max_i,i; printf("Input n(int 1<n<=10)...\\nn="); if(scanf("%d",&n)!=1 || n<2 || n>10){ printf("Input error, exit...\\n"); return 0; } for(max_i=i=0;i<n;i++) if(scanf("%...

...输入一个正整数n(1<n<=10),再输入n个整数,输出其最大值及其下标_百...
include<stdio.h> main(){ int n,i,j;scanf("%d",&n);int a[11];for(i=0;i<n;i++)scanf("%d",&a<i>);for(j=0;j<n;j++){ if(a[0]<a[j]){ a[0]=a[j];i=j;} else if(a[0]==a[j]){ a[0]=a[j];if(i>j){ i=j;} } } printf("%d%d",a[0],i...

输入一个正整数n (1<n≤10),再输入n个整数,将它们存入数组a中。
printf("请输入你要输入多少整数\\n"); scanf("%d",&n); a = (int*)malloc(n*sizeof(int)); if(a == NULL) return -1; printf("请输入这%d个整数\\n",n); for(i=0; i<n;) { scanf("%d",a+i); if(*(a+i)<2 || *(a+i)>10) { printf("重新输入\\n"); }else{ i++; } ...

输入一个正整数n(1<n≤10),再输入n个整数,将最小值与第一个数交换,最...
void main(){ int i,j=0,k=0,t,n,min,max,a[10];printf("输入整百数度的个数: ");scanf("%d",&n);printf("输入%d个整数: ",n);scanf("%d",&a[0]);max=a[0];min=a[0];for(i=1;i<n;i++){ scanf("%d",&a[i]);if(max<a[i]) {max=a[i];j=i;} if(min...

输入一个正整数n,1<n≤10,再输入n个整数,将数组的数逆序存放,并输出这...
include<stdio.h> int main(){int n,i,j,t,a[10];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0,j=n-1;i<j;i++,j--){t=a[i];a[i]=a[j];a[j]=t;} for(i=0;i<n;i++)printf("%d ",a[i]);printf("\\n");return 0;} ...

...程序,输入一个正整数n(1<n<=10),再输入n个整数,将这n个数降序排列后...
int i,j,n;int a[12];int min,mx;scanf("%d",&n);for(i=0;i<n;i++){ scanf("%d",&a[i]);} for(i=0;i<n;i++){ min=a[i];mx=i;for(j=i+1;j<n;j++){ if(a[j]>min){ min=a[j];mx=j;} } j=a[i];a[i]=a[mx];a[mx]=j;} for(i=0;i<n;i+...

相似回答