编写程序,输入1个正整数n(1<n<=10),再输入n个整数,按绝对值从小到大排序后输出

供稿:hz-xin.com     日期:2025-01-13
用C语言编写程序,输入一个正整数n(1<n<=10),再输入n个整数,将这n个数降序排列后输出(请用选择排序法

#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]换位~

C语言实现,采用选择排序:
#include #include #include void Exchange(int *A,int *B) //交换两个数的值{int temp;temp=*A;*A=*B;*B=temp;}void selectsort_dir(int *T,int left,int right)//选择排序,[left,right]为排序范围{int i;int maxnum;do{maxnum=left;for(i=left+1;i10);//1~10之间p = (int *)malloc(sizeof(int)*n); for(i=0;i<n;i++){printf("输入第%d个整数:",i+1);scanf("%d",p+i);}for(i=0;i<n;i++) printf("%d ",*(p+i));printf("
");selectsort_dir(p,0,n-1);for(i=0;i<n;i++) printf("%d ",*(p+i)); }测试结果:

1 #include "stdio.h" #include <math.h> void main() { int n,m,swap; int i,j; int a[10]; printf("请输入整数个数n:"); scanf("%d",&n); printf("请输入n个整数(每输入一个数按Enter键一下):\n"); for(i=0;i<n;i++) { scanf("%d",&m); a[i]=m; } for(i=0;i<n;i++) for(j=0;j<n-i;j++) if(fabs(a[j])>fabs(a[j+1])) { swap=a[j]; a[j]=a[j+1]; a[j+1]=swap; } printf("排好序的n个整数为:"); for(i=0;i<n;i++) printf("%d ",a[i]); } 2: #include "stdio.h" void main() { int n,m,swap; int max,min; int fmax=0,fmin=0; int i; int a[10]; printf("请输入整数个数n:"); scanf("%d",&n); printf("请输入n个整数(每输入一个数按Enter键一下):\n"); for(i=0;i<n;i++) { scanf("%d",&m); a[i]=m; } min=a[0],max=a[0]; for(i=0;i<n;i++) { if(a[i]<min) { min=a[i]; fmin=i; } if(a[i]>max) { max=a[i]; fmax=i; } } swap=a[fmin]; a[fmin]=a[0]; a[0]=swap; swap=a[fmax]; a[fmax]=a[n-1]; a[n-1]=swap; printf("排好序的n个整数为:"); for(i=0;i<n;i++) printf("%d ",a[i]); } 第三题等等

(C++程序)输入一个正整数N,计算N个数里面有多少奇偶数
include<stdio.h>int main(){int n;int l;int ou=0,ji=0;scanf("%d",&n);while(n--){scanf("%d",&l);if(l%2==0)ou++;elseji++;}printf("%d,%d",ji,ou); \/\/这里根据具体格式调整一下,}你也可以将输出贴出来,我来调整 ...

输入1个正整数n(1<=n<=6)和n阶矩阵a中的元素,如果找到a的鞍点(鞍点...
int i,j,k,m,l,n;int a[6][6];l=1;m=0;printf("Enter n:");scanf("%d",&n);for(i=0;i<n;i++){ for(j=0;j<n;j++)scanf("%d",&a[i][j]);} for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(a[i][m]<a[i][j])m=j;} for(k=0;k<n;k++){ if(...

求NOIP1995提高组复赛解题报告
回答:1.奖学金 (scholar.pas\/c\/cpp) 【问题描述】 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那...

使用C语言输入一个正整数n,输出1+2!+3!+...n!
{ int i,sum=0,t,s,n;printf("请输入一个整数:");\/\/提示语句 scanf("%d",&n);\/\/输入n的值 for(i=1;i<=n;i++) \/\/第一次循环,就是数字1到n 的递增 { s=1;\/\/每次阶乘都要初始化s=1 for(t=1;t<=i;t++)\/\/循环里的循环 ,求每个i的阶乘 s*=t;\/\/ 目的是把i的阶...

写一程序:输入一个正整数,按十进制位从低到高输出。
include <iostream> include <stdlib.h> using namespace std;int main(){ int i;char a[20];cout << "输入无符号整数:";cin >> i;itoa(i, a, 10);for (i = strlen(a)-1; i >= 0; i--){ cout << a[i];} cout << endl;return 0;} ...

C编程 实现输入一个正整数,输出其对应的二进制数。
;void main(){ int num;printf("输入正整数:"); \/\/当超过一定位数时,会溢出 scanf("%d",&num);if(num<=0){ printf("输入整数!");} else { output(num);} } int output(int num){ int temp;if(num!=0){ temp=num%2;num=num\/2;output(num);printf("%d",temp);} } ...

编程c++输入一个整数n,输出1—n之间所有奇数的和。
intsum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d",n);\/\/输出1-n之间的所有素数 } } printf("1-%d之间的所有素数...

10、输入一个正整数N,把它分解成质因子相乘的形式。
int f(n){ __int l=2,str='';__while(n-1&&l<=n){ ___if(n%l){ ___if(str==''){ ___str="l";___} ___else{ ___str=str+"*"+l;___} ___} ___else{ ___l++;___} __} __return str;} void main(){ __int n=1000;__printf("%s",f(n));} ...

(C语言)输入一个正整数n, 再输入n 个整数,输出这n个整数的最大值.
include intmain(){ intn,a,i,t;scanf("%d",&n);if(n<=0){ printf("输入n的值错误");return0;} scanf("%d",&t);\/\/先读的第一个数要默认成最大的,不然,t的初值是不定的 for(i=1;i{ scanf("%d",&a);if(t} printf("%d",t);return0;\/\/ } ...

从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和 我编...
int sum=0;printf("请输入一个大于2的整数:");scanf("%d",&n);l=n;for(;n>=2;n--){ for(i=2;i<n;i++){ if(n%i!=0)\/\/判断其为素数 t=1;else { t=2;break;} } if(t==1){ sum+=n;\/\/printf("%d",n);\/\/输出1-n之间的所有素数 } } printf("1-%d之间的所有...