鱼C论坛

 找回密码
 立即注册
查看: 2112|回复: 1

大佬们帮忙把这个程序改成函数版(C语言)

[复制链接]
发表于 2018-9-24 12:58:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
帮忙把赋值 冒泡 输出改为一个独立的函数

#include <stdio.h>
#include <malloc.h>

struct Student
{
        int age;
        float score;
        char name[100];
};

main(void)
{
        int i,j;
        int len;
        struct Student * pArr;
        struct Student t;
        printf("请输入您学生的个数:\n");

        printf("len=");
        scanf("%d",&len);
        pArr = (struct Student *)malloc(sizeof(struct Student) * len);

    //赋值
        for(i=0;i<len;i++)
        {
                printf("请输入您第%d个学生的信息\n",i+1);
                printf("age=");
                scanf("%d",&pArr[i].age);
                printf("score=");
                scanf("%f",&pArr[i].score);
                printf("name=");
                scanf("%s",pArr[i].name);
        }
    //冒泡排序
        for(i=0;i<len-1;i++)
        {
                for(j=0;j<len-i-1;j++)
                {if(pArr[j].score<pArr[j+1].score)
                        {
                        t=pArr[j];
                        pArr[j]=pArr[j+1];
                        pArr[j+1]=t;

                        }
                }       
        }

    //输出
        for(i=0;i<len;i++)
        {
                printf("\n");


                printf("这是您您第%d个学生的信息\n",i+1);

                printf("age=%d\n",pArr[i].age);

                printf("score=%f\n",pArr[i].score);
       
                printf("name=%s\n",pArr[i].name);
        }

return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-24 13:32:16 | 显示全部楼层
本帖最后由 claws0n 于 2018-9-24 13:36 编辑

你的好像不是真正的冒泡排序,多跑了。
#include <stdio.h>
#include <malloc.h>

struct Student
{
    int age;
    float score;
    char name[100];
};

void sort_struct(struct Student *Array, int len)
{
    for(int i = 0; i < len-1; i++)
    {
        for(int j = 0 ; j < len-i-1; j++)
        {
            if(Array[j].score < Array[j+1].score)
            {
                    struct Student t = Array[j];
                    Array[j] = Array[j+1];
                    Array[j+1] = t;
            }
        }        
    }
}

int main(void)
{
    int i,j;
    int len;
    struct Student * pArr;
    struct Student t;
    printf("请输入您学生的个数:\n");

    printf("len = ");
    scanf("%d",&len);
    pArr = (struct Student *)malloc(sizeof(struct Student) * len);

    //赋值
    for(i = 0; i < len; i++)
    {
        printf("请输入您第%d个学生的信息\n", i+1);
        printf("age = ");
        scanf("%d", &pArr[i].age);
        printf("score = ");
        scanf("%f", &pArr[i].score);
        printf("name = ");
        scanf("%s", pArr[i].name);
    }
    //冒泡排序
    sort_struct(pArr, len);

    //输出
    for(i=0;i<len;i++)
    {
        printf("\n");
        printf("这是您您第%d个学生的信息\n",i+1);
        printf("age=%d\n",pArr[i].age);
        printf("score=%.2f\n",pArr[i].score);    // 格式化 2 位小数
        printf("name=%s\n",pArr[i].name);
    }

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 10:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表