急!C语言:一维数组,输入一组整数然后按照大小排列输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 02:39:26
急!C语言:一维数组,输入一组整数然后按照大小排列输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求

急!C语言:一维数组,输入一组整数然后按照大小排列输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求
急!C语言:一维数组,输入一组整数然后按照大小排列
输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求出最大值,最小值,平均值.)
6 12 5 97 1
1 12 5 97 6
1 5 12 97 6
1 5 6 97 12
1 5 6 12 97
急!谢谢~~

急!C语言:一维数组,输入一组整数然后按照大小排列输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求
#include <stdio.h>

int main(){
\x05int n;\x05\x05// 数字个数
\x05printf("number count: ");
\x05scanf("%d", &n);
\x05int *p = (int *)malloc(n*sizeof(int));\x05// 分配数组空间
\x05for(int i=0;i<n;i++){\x05\x05// 挨个输入数字
\x05\x05printf("number %d: ", i+1);
\x05\x05scanf("%d", p+i);
\x05}
\x05
\x05for(int i=0;i<n;i++)\x05\x05// 输出排序前数组
\x05\x05printf("%d ", p[i]);
\x05printf("\n");
\x05
\x05for(int i=0;i<n-1;i++){\x05// 选择排序
\x05\x05int min = i;
\x05\x05for(int j=i+1;j<n;j++)\x05// 找到最小的
\x05\x05\x05if(p[j]<p[min])
\x05\x05\x05\x05min = j;
\x05\x05int tmp = p[i];\x05\x05// 交换
\x05\x05p[i] = p[min];
\x05\x05p[min] = tmp;
\x05\x05for(int i=0;i<n;i++)\x05// 输出排序的步骤
\x05\x05\x05printf("%d ", p[i]);
\x05\x05printf("\n");
\x05}
\x05
\x05return 0;
}


输入输出:
number count:5↙
number 1:6↙
number 2:12↙
number 3:5↙
number 4:97↙
number 5:1↙
6 12 5 97 1
1 12 5 97 6
1 5 12 97 6
1 5 6 97 12
1 5 6 12 97