久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C語(yǔ)言結(jié)構(gòu)體應(yīng)用

 fjsmfj 2012-03-29

給定學(xué)生成績(jī)登記表如表91所示,。

學(xué)號(hào)(num

姓名(name

成績(jī)(grade

02

Lin

92

03

Zhang

87

04

Zhao

72

05

Ma

91

09

Zhen

85

11

Wang

100

12

Li

86

13

Xu

83

16

Mao

78

17

Hao

95

20

Lu

82

21

Song

76

22

Wu

88

將表91劃分成三個(gè)子表,,其中子表1登記的是成績(jī)?cè)?SPAN>90100之間的學(xué)生情況,子表2登記的是成績(jī)?cè)?SPAN>80~89之間的學(xué)生情況,,子表3登記的是7079之間的學(xué)生情況,。

具體要求如下:

(1)用結(jié)構(gòu)體數(shù)組存放表91中的學(xué)生成績(jī)情況。其結(jié)構(gòu)體類型為

 struct student

    {int num,;

    char name[10],;

     int grade

    }

(2)劃分成的三個(gè)子表均采用鏈表結(jié)構(gòu),鏈表中各結(jié)點(diǎn)的數(shù)據(jù)域存放學(xué)生成績(jī)情況在原表中的存儲(chǔ)地址,,而不是直接存放學(xué)生成績(jī)情況,。結(jié)點(diǎn)的結(jié)構(gòu)為

    struct node

    {struct student *data

     struct node *next,;

    }

(3)要求最后輸出原學(xué)生成績(jī)情況表以及劃分成的三個(gè)子表,。輸出格式如表91所示(但不要表中的框線)

    方法說(shuō)明:

    劃分的方法如下:

    掃描表91中各學(xué)生的成績(jī)grade,,計(jì)算

    K=10-int(grade10)

其中int()表示取整,。根據(jù)k值將該學(xué)生情況歸并到相應(yīng)的子表中:

    k=01,則歸并到子表1中,;

    k=2,,則歸并到子表2中;

    k=3,,則歸并到子表3中,。

    在需要將學(xué)生情況加入到子表時(shí),首先動(dòng)態(tài)分配一個(gè)結(jié)點(diǎn)(struct node類型),,將該學(xué)生情況在原表中的存儲(chǔ)地址存入結(jié)點(diǎn)的數(shù)據(jù)域中,,然后將該結(jié)點(diǎn)鏈接到相應(yīng)鏈表的頭部。

    為了動(dòng)態(tài)分配一個(gè)結(jié)點(diǎn)p,,可以用如下語(yǔ)句:

    p=(struet node*)malloc(sizeof(struct node)),;

其中p為結(jié)構(gòu)體類型struct node的指針。

    而為了使用函數(shù)malloc(),,要求包含頭文件”stdlibh”,。


#include<stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#define N 13
typedef 
struct student
{
 
int num;
 
char name[10];
 
int grade;
}
Stu;

Stu stu[N]
={{2,"Lin",92},{3,"Zhang",87},{4,"Zhao",72},{5,"Ma",91},{9,"Zhen",85},{11,"Wang",100},{12,"Li",86},{13,"Xu",83},{16,"Mao",78},{17,"Hao",95},{20,"Lu",82},{21,"Song",76},{22,"Wu",88}};
typedef 
struct node
{
 
struct student *data;
 
struct node *next;
}
Node;

void show(Node *h)
{
 Node 
*p;
 p
=h;
 
while(p->next!=NULL)
  
{
   printf(
"%d\t%s\t%d\n",p->data->num,p->data->name,p->data->grade);
   p
=p->next;
  }

}


Node 
*create(Node *h,Stu *p)
{
    Node 
*s;
    s
=(Node *)malloc(sizeof(Node));
    h
=s;
    s
->data=p;
    s
->next=NULL;
    
return h;
}


void save(Node *h,Stu *p)
{
 Node 
*s,*t;
 s
=(Node *)malloc(sizeof(Node));
 t
=h;
 
while(t->next!=NULL)t=t->next;
 s
->data=p;
 s
->next=NULL;
 t
->next=s;
}


void main()
{
 
int i,j,k,flag[4]={0};
 Node 
*h[4]={NULL},*p;

 
for(i=0;i<N;i++)
      
for(j=1;j<4;j++)
     
{
         k
=10-int(stu[i].grade/10);
         
if(k==0) k++;
         
if(k==j)
             
if(flag[j]==0)
             
{
                 flag[j]
=1;
                 h[j]
=create(h[j],&stu[i]);
             }

             
else     save(h[j],&stu[i]);
 }


 
for(i=1;i<4;i++)
 
{
     printf(
"The NO.%d table:\n",i);
     show(h[i]);
 }

 getch();
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多