注册 登录
编程论坛 C++教室

求教 采用C语言、Win-TC编程环境 编程知识涉及:指针操作、涵盖三种结构、独立的算法。

April_2nd 发布于 2011-12-11 02:11, 510 次点击
采用C语言、Win-TC编程环境 编程知识涉及:指针操作、涵盖三种结构、独立的算法。 题目可自拟,谢谢各位大大了 如果各位大大有时间麻烦帮我看一下 谢谢了 很小的一个程序就可以了,我这里有一个源码,各位大大,可以帮我改一下变量和功能,谢谢了
程序代码:
#include "stdio.h"

    typedef struct node
    {
        int xh;
        char sname[8];
        int sx;
        int yw;
        int zf;
        int mc;
        struct node *next;
    }linklist;
   
   
main()
{   
    linklist *head;
    linklist *s=NULL; //创建  链表时所用的指针。。
    linklist *p=NULL;// 输出  链表时所用的指针。。
    linklist *q=NULL;
    linklist *g=NULL;
    char ch;
   
    head = NULL;//开始时 链表的头为空;
    printf(" 输入 y 进入循环\n");
    ch=getch();
    while(ch =='y'||ch=='Y')
    {
        s=(linklist*)malloc(sizeof(linklist));//给链表建立个空间
        printf("输入学号");
        scanf("%d",&s->xh);
        printf("输入姓名");
        scanf("%s",s->sname);
        printf("输入数学成绩");
        scanf("%d",&s->sx);
        printf("输入语文成绩");
        scanf("%d",&s->yw);

        s->zf=s->sx+s->yw;
   

        
           s->next = NULL;
           
           
        if(head == NULL||head->zf<s->zf)
        {
            s->next=head;
            head=s;

        }
        else
        {
        p=head;
        q=p->next;
        while(q!=NULL&&s->zf <= q->zf)
            {
                p=q;
                q=q->next;
            }
            s->next=q;
            p->next=s;
        }



        printf(" 继续输入按y\n");
        ch=getch();
    }
    //输出链表
        g=head;

        while(g!=NULL)
        {  
            
            
            printf("%4d",g->xh);
            printf("%4s",g->sname);
            printf("%4d",g->sx);
            printf("%4d",g->yw);
            printf("%4d",g->zf);
            printf("\n ");
            g=g->next;
            
        }  
        
}
0 回复
1