用C语言编写程序,输入一个正整数n(1<n<=10),再输入n个整数,将这n个数降序排列后输出(请用选择排序法

如题所述

第1个回答  推荐于2018-04-26
#include "stdio.h"

int main()
{
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++)
{
printf("%d ",a[i]);
}
return 0;
}
min记录该次比较的最大值,mx为相应坐标
遍历找到mx后,与a[i]换位~本回答被提问者和网友采纳
第2个回答  2011-09-05
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

void main()
{
int n,temp,i;
vector<int> array;
cout<<"输入N";
cin>>n;
cout<<"输入n个数:";
for(i=0;i<n;i++)
{
cin>>temp;
array.push_back(temp);
}
sort(array.begin(),array.end());
for(i=0;i<n;i++)
{
cout<<array[i];
}
}

用C语言编写程序,输入一个正整数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+...

C语言题目:输入一个正整数n(1<n≤10),再输入n个正数,输出平均值(保留两 ...
include<stdio.h>int main(void){int a[10];int n,i;float average,sum=0; \/\/sum定义成float才合适printf("Please input n:");scanf("%d",&n);printf("Please input %d integers:",n); \/\/移动到循环外for(i=0;i<n;i++) \/\/这里多了分号{scanf("%d",&a[i]);sum+=a[i];}a...

...输入一个正整数n(1<n《10),再输入n个整数,将最小值与第一个数交换...
1、首先建立一个工程和.c文件。2、然后输入头文件和主函数。3、定义变量类型并初始化。4、输入一个正整数n(1<n《10),再输入n个整数。5、将最小值与第一个数交换,最大值与最后一个数交换。6、剔除整数的个位数。7、最后得到输出的结果。8、编译,运行,得到最后的结果。

输入一个正整数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,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个整数,将最小值与第一个数交换...
include<stdio.h>int main(){ int a[10]; int i,max,min,n; printf("请输入一个正整数n(1<n<10)\\n"); scanf("%d",&n); printf("请输入n个正整数\\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); printf("\\n"); max=min=0; for(i=0;...

C语言:输入一个正整数n(1 <n≤10),再输入n 个整数
\/ include<stdio.h> int main(void){ int index1,index2,b,c,i,n,a[10];\/\/添加了 printf("请输入一个1到10的正整数:");scanf("%d",&n);index1=0;index2=n-1;for(i=0; i<n; i++){ printf("赋值a[%d]:",i);scanf("%d",&a[i]);} \/\/这两个语句应该写在赋值之后 ...

...输入一个正整数 n (1<n<=10),再输入n 个整数,输出平均值(保留2 位...
1、输入一个正整数 n (1<n<=10),再输入n 个整数,输出平均值(保留2 位小数)。sum = 0;for(i = 0;i < n;i++){ sum += a[i];} aver=sum*1.0\/n;2、index = 0;for(i = 1;i < n;i++){ if(a[i] > a[index]){ index = i;} } 命题 1 对于B=36N+1 形数...

输入一个正整数 n (1<n<=10),再输入 n 个整数,将它们从大到小排序后输 ...
应该是你想复杂 了..我根据你写的改了一下..你看看跟你的有什么区别..include<stdio.h> int main(void){ int a[10];int n,i,k,temp;printf("enter n:");scanf("%d",&n);printf("enter %d :",n);for(i=0;i<n;i++){ scanf("%d",&a[i]);} for(k=0;k<n;k++){ for...

输入一个正整数n (1<n≤10),再输入n个整数,将它们存入数组a中。_百 ...
int n = 0, i; int min = 0,minpos = 0; int* a = NULL; 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...

输入一个正整数n(1<n<=10),再输入n个整数存入数组a中,先将数组a中的n...
include <stdio.h> int main(){ int temp;int a[],n;for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=0;i<n\/2;i++){ temp=a[i];a[i]=a[9-i];a[9-i]=temp;} for(int i=0;i<n;i++)printf("%d ",a[i]);return 0;} ...

相似回答