急!!C语言:一维数组,输入一组整数然后按照大小排列
答案:2 悬赏:80 手机版
解决时间 2021-02-15 04:44
- 提问者网友:戎马万世
- 2021-02-14 19:09
急!!C语言:一维数组,输入一组整数然后按照大小排列
最佳答案
- 五星知识达人网友:woshuo
- 2021-02-14 19:21
#include
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i printf("number %d: ", i+1);
scanf("%d", p+i);
}
for(int i=0;i printf("%d ", p[i]);
printf("
");
for(int i=0;i int min = i;
for(int j=i+1;j if(p[j] min = j;
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i printf("%d ", p[i]);
printf("
");
}
return 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
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i printf("number %d: ", i+1);
scanf("%d", p+i);
}
for(int i=0;i printf("%d ", p[i]);
printf("
");
for(int i=0;i int min = i;
for(int j=i+1;j if(p[j] min = j;
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i printf("%d ", p[i]);
printf("
");
}
int sum = 0;
for(int i=0;i sum += p[i];
printf("
average: %f
", (float)sum/n);
printf("max: %d
", p[n-1]);
printf("min: %d", p[0]);
return 0;
}追问非常谢谢!!!
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i
scanf("%d", p+i);
}
for(int i=0;i
printf("
");
for(int i=0;i
for(int j=i+1;j
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i
printf("
");
}
return 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
int main(){
int n; // 数字个数
printf("number count: ");
scanf("%d", &n);
int *p = (int *)malloc(n*sizeof(int)); // 分配数组空间
for(int i=0;i
scanf("%d", p+i);
}
for(int i=0;i
printf("
");
for(int i=0;i
for(int j=i+1;j
int tmp = p[i]; // 交换
p[i] = p[min];
p[min] = tmp;
for(int i=0;i
printf("
");
}
int sum = 0;
for(int i=0;i
printf("
average: %f
", (float)sum/n);
printf("max: %d
", p[n-1]);
printf("min: %d", p[0]);
return 0;
}追问非常谢谢!!!
全部回答
- 1楼网友:轻熟杀无赦
- 2021-02-14 20:56
这是最简单的选择排序法,网上有算法
最大值最小值更是简单,排完序第1个和最后1个元素就是
平均值算和除以个数
最大值最小值更是简单,排完序第1个和最后1个元素就是
平均值算和除以个数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯