鱼C论坛

 找回密码
 立即注册
查看: 2458|回复: 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;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

  3. struct Student
  4. {
  5.     int age;
  6.     float score;
  7.     char name[100];
  8. };

  9. void sort_struct(struct Student *Array, int len)
  10. {
  11.     for(int i = 0; i < len-1; i++)
  12.     {
  13.         for(int j = 0 ; j < len-i-1; j++)
  14.         {
  15.             if(Array[j].score < Array[j+1].score)
  16.             {
  17.                     struct Student t = Array[j];
  18.                     Array[j] = Array[j+1];
  19.                     Array[j+1] = t;
  20.             }
  21.         }        
  22.     }
  23. }

  24. int main(void)
  25. {
  26.     int i,j;
  27.     int len;
  28.     struct Student * pArr;
  29.     struct Student t;
  30.     printf("请输入您学生的个数:\n");

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

  34.     //赋值
  35.     for(i = 0; i < len; i++)
  36.     {
  37.         printf("请输入您第%d个学生的信息\n", i+1);
  38.         printf("age = ");
  39.         scanf("%d", &pArr[i].age);
  40.         printf("score = ");
  41.         scanf("%f", &pArr[i].score);
  42.         printf("name = ");
  43.         scanf("%s", pArr[i].name);
  44.     }
  45.     //冒泡排序
  46.     sort_struct(pArr, len);

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

  56.         return 0;
  57. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 13:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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