结构体(一) SDUT

今天学结构体。老师上机举了一个例子。
问题:
在这里插入图片描述
不使用结构体:

#include <stdio.h>
#include <stdlib.h>
#define N  3
void str_cpy(char *from,char *to)
{
    for(; *from;*to++=*from++);
    *to = '\0';
    return;
}
int main()
{
    int number[N];    // 学号
    char name[N][20]; // 姓名
    int Cscore[N];    //C语言成绩
    int i,j;
    int t;
    char tname[20];
    for(i=0;i<N;i++)
    {
        printf("\n Input number:\t");
        scanf("%d",&number[i]);
        printf("Input Name:\t");
        fflush(stdin);
        gets(name[i]);
        printf("Input Cscore:\t");
        scanf("%d",&Cscore[i]);
    }
    for(i=0;i<N;i++)
    {
        for( j=0;j<N-1-i;j++)
        {
                if(Cscore[j]>Cscore[j+1])
                {
                    t = number[j];
                    number[j] = number[j+1];
                    number[j+1] = t;
                    str_cpy(name[j],tname);
                    str_cpy(name[j+1],name[j]);
                    str_cpy(tname,name[j+1]);
                    t = Cscore[j];
                    Cscore[j] = Cscore[j+1];
                    Cscore[j+1] = t;
                }
        }
    }
    for(i=0;i<N;i++)
    {
        printf("\n%d\t%s\t%d\n",number[i],name[i],Cscore[i]);
    }

    return 0;
}

可以学习 拷贝函数的写法!

使用结构体:

#include <stdio.h>
#include <stdlib.h>
#define N  3
void str_cpy(char *from,char *to)
{
    for(; *from;*to++=*from++);
    *to = '\0';
    return;
}
int main()
{
    struct Student
    {
        int number;    // 学号
        char name[20]; // 姓名
        int Cscore;    //C语言成绩
    }stu[N],temp;
    int i,j;
    printf("\n Input: num name Cs\t");
    for(i=0;i<N;i++)
    {

        scanf("%d%s%d",&stu[i].number,&stu[i].name,&stu[i].Cscore);

    }
    for(i=0;i<N;i++)
    {
        for( j=0;j<N-1-i;j++)
        {
                if(stu[j].Cscore>stu[j+1].Cscore)
                {
                    temp = stu[j];
                    stu[j] = stu[j+1];
                    stu[j+1]=temp;
                }
        }
    }

    for(i=0;i<N;i++)
    {
        printf("\n%d\t%s\t%d\n",stu[i].number,stu[i].name,stu[i].Cscore);
    }

    return 0;
}
发布了8 篇原创文章 · 获赞 2 · 访问量 161
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览