C语言程序设计将一个具有20个元素的一维数组,对下标为奇数位的元素用选择排序按升序排序?

将一个具有20个元素的一维数组,对下标为奇数位的元素用选择排序按升序排序,排序后按每行4个元素出。

#include <stdio.h>

void sort(int a[])
{
for(int i = 1;i <= 18;i += 2)
{
int temp,min = i - 1;
for(int j = i + 2;j <= 20;j += 2)
{
if(a[min] > a[j-1])
min = j-1;
}
temp = a[i-1];
a[i-1] = a[min];
a[min] = temp;
}
}

void display(int a[])
{
for(int i = 1;i <= 20;i++)
{
printf("%d ",a[i-1]);
if(i % 4 == 0)
printf("\n");
}
}
int main()
{
int a[20] = {1,2,3,4,55,66,77,11,22,33,
44,112,0,51,61,99,100,32,42,62};
sort(a);
display(a);
}
大致思路就是这样,可能位置被我搞成偶数了,自己改一改
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言程序设计将一个具有20个元素的一维数组,对下标为奇数位的元素用...
{ int a[20] = {1,2,3,4,55,66,77,11,22,33,44,112,0,51,61,99,100,32,42,62};sort(a);display(a);} 大致思路就是这样,可能位置被我搞成偶数了,自己改一改

c语言编程题 定义一个包含20个元素的一维数组a 输出这20个元素的最小...
printf("最小值:%d,下标:%d",min,index);return 0;}

C语言编程 有一个20个元素的double型数组,要求用起泡法方法将这20个元 ...
double a[20],t;int n,i,j;n=20;printf("请输入%d个实数:\\n",n);for(i=0;i<n;i++)scanf("%lf",&a[i]);printf("\\n");for(j=0;j<(n-1);j++) \/*进行n-1次循环,实现n-1趟比较*\/ for(i=0;i<(n-1-j);i++) \/*在每一趟中进行n-1-j次比较*\/ if(a[i]>a[...

C语言编程,设a是一个有十个元素的整型数组,统计奇数和偶数个数
思路:遍历该数组,依次判断能否被2整除,确定是奇数还是偶数并进行统计,最后奇偶数个数。参考代码:include<stdio.h>#include<math.h>int main() { int i,j=0,o=0,a[10]={0,1,2,3,4,5,6,7,8,9}; for(i=0;i<10;i++) if(a[i]%2) j++; else o++; printf("奇数有%d个...

编写一个用选择法对一维数组升序排序的函数,并在主函数中调用该排序函...
include #define MAXlen 100void select_sort(int *x, int n) { \/\/选择排序 int i, j, min;int t;for (i = 0; i < n - 1; i++) { \/\/ 要选择的次数:0~n-2共n-1次 min = i; \/\/ 假设当前下标为i的数最小,比较后再调整 for (j = i + 1; j < n; j++...

C语言:编程输入n个整数,用选择法排序将它们按升序重新排列后输出...
代码如下:\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"#include "stdlib.h"int main(void){ int n,x[20],i,j,k; while(1){ printf("Input n(int n<=20)...\\n"); if(scanf("%d",&n),n==0) break; for(i=0;i<n;scanf("%d",x...

C语言编程 定义一个有20个元素的整型数组,从键盘输入20个数,输出 该数...
include <stdio.h> int main(int argc, char *argv[]){ int a[20] = {0}; int i = 0; for (i = 0; i < 20; i++) { printf("输入第%d个数:\\n", i+1); scanf("%d", &a[i]); } for (i = 0; i < 20; i++) { if (0 ==...

用C语言实现输入20个数偶数项按升序输出,奇数项不变,
int main(){ int arr[20] = {1,4,2,3,8,7,6,5,9,10,20,19,18,17,16,15,14,13,12,11};int tmp, i, j;for(i=0; i<20; i+=2) \/\/i+=2即可。。同样如果认为a[1]是偶数项的话从a[0]开始 for(j=i; j<20; j+=2)if(arr[i]>arr[j])tmp =arr[i], arr[i...

将20个数放在一个数组中,求这20个数的最大值、最小值、和、平均值(C语...
include <stdio.h>#define N 20\/\/求最大值函数int max_func(int a[],int n){int i,max;for(max=a[0],i=1;i<N;i++) \/\/初始默认最大值为a[0],遍历数组元素if(max<a[i]) \/\/如果当前最大值<当前数组元素,则将该元素赋值给maxmax=a[i];return max;}\/\/求最小值函数int ...

C语言编程:将从键盘输入的20个整数存入一维数组中,计算所有元素的和...
include <stdio.h>int main(void){int a[20];int i=0;for (;i<20;i++)scanf("%d",&a[i]);int result=0;for (i=0;i<20;i++)result+=a[i];printf("和为:%d\\n平均值为:%f\\n",result,result\/20.0);\/*20.0不能改为20*\/result=a[0]for (i=1;i<20;i++){if (...

相似回答