急!C语言:一维数组,输入一组整数然后按照大小排列
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 07:31:24
急!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
急!谢谢~~
输入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
急!谢谢~~
#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
再问: 再加上平均值,最大值最小值呢?
再答: #include <stdio.h>
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i<n;i++){ // 挨个输入数字
printf("number %d: ", i+1);
scanf("%d", p+i);
}
for(int i=0;i<n;i++) // 输出排序前数组
printf("%d ", p[i]);
printf("\n");
for(int i=0;i<n-1;i++){ // 选择排序
int min = i;
for(int j=i+1;j<n;j++) // 找到最小的
if(p[j]<p[min])
min = j;
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i<n;i++) // 输出排序的步骤
printf("%d ", p[i]);
printf("\n");
}
int sum = 0;
for(int i=0;i<n;i++) // 求和
sum += p[i];
printf("\naverage: %f\n", (float)sum/n);
printf("max: %d\n", p[n-1]);
printf("min: %d", p[0]);
return 0;
}
再问: 非常谢谢!!!
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
再问: 再加上平均值,最大值最小值呢?
再答: #include <stdio.h>
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i<n;i++){ // 挨个输入数字
printf("number %d: ", i+1);
scanf("%d", p+i);
}
for(int i=0;i<n;i++) // 输出排序前数组
printf("%d ", p[i]);
printf("\n");
for(int i=0;i<n-1;i++){ // 选择排序
int min = i;
for(int j=i+1;j<n;j++) // 找到最小的
if(p[j]<p[min])
min = j;
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i<n;i++) // 输出排序的步骤
printf("%d ", p[i]);
printf("\n");
}
int sum = 0;
for(int i=0;i<n;i++) // 求和
sum += p[i];
printf("\naverage: %f\n", (float)sum/n);
printf("max: %d\n", p[n-1]);
printf("min: %d", p[0]);
return 0;
}
再问: 非常谢谢!!!
C语言 用冒泡排序法将一组整数(存在于数组中)按照从小到大排列
C语言求一简单程序,二维数组矩阵,按降序排列,输入矩阵?
C语言程序 有10个升序排列的整数保存在一个数组中.现在输入一个整数,要求按原来的规律将它插入数组中
C语言:输入10个整数,对其中前5个数按降序排列,然后输出这10个整数
C语言程序咋写:将20个整数输入到一个一维数组中,统计奇数的个数和偶数的个数
编写c语言二维数组一、任意输入15个整数到二维数组中,将它们输出显示成一个5行3列的数阵.二、任意输入9个整数到二维数组
C 语言 一维整形数组将数组元素逆序存放并把交换后的数组输出 要求数组元素的输入,交换和输出分别用函数
【C语言数组最简单题目】输入一组数.奇数放前面,偶数放后面
C语言编程求解,二维数组矩阵,按降序排列,输入矩阵?
从键盘输入5个整数,按照其值从大到小排序 C语言数组做
c语言中如何去除一组数组中相同的数字……只保留一个然后输出新数组
C语言题目 .利用scanf输入一实数,然后分别输出该实数的整数部分和小数部分.