急!!C语言:一维数组,输入一组整数然后按照大小排列

输入n个整数存入一维数组,然后把这些整数按照大小排列出来,而且是每一步步骤也要,并且有三列是有一侧对齐,打印出来如下:(也要求出最大值,最小值,平均值。)61259711... 输入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
急!!谢谢~~
展开
 我来答
Silin_Silin
推荐于2017-12-15 · TA获得超过470个赞
知道小有建树答主
回答量:303
采纳率:50%
帮助的人:379万
展开全部
#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");
}

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 <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;
}
千神由香
2014-03-01 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:93
采纳率:0%
帮助的人:102万
展开全部
这是最简单的选择排序法,网上有算法
最大值最小值更是简单,排完序第1个和最后1个元素就是
平均值算和除以个数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式