今天來講講自定結構資料型態的用法
目的是什麼呢?
大概就是讓你直觀的了解該參數的意義(?
反正就是看你個人如何使用
那什麼是自定結構資料型態呢?
typedef struct xxxx{
....
}xxxx_t <-type命名法則 (其實你也可以隨便定義,就看使用者習慣)
那麼一樣以例題的方式來代入
假設今天有位老師想登記所有學生的名字,數學及英文的成績並給予排名時
就可以用自訂結構的方式來寫,例如
typedef struct student{
int id;
char name[8];
int math;
int c;
int rank;
int avg;
}student_t;
那麼在定義好之後,即可以在程式中使用此資料型態
student_t s[5];
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
typedef struct student{
int id;
char name[8];
int math;
int c;
int rank;
int avg;
}student_t;
int average(student_t s[],int size){
int i=0,aver=0;
for(i=0;i<size;i++){
aver = (s[i].math+s[i].c)/2 + aver;
}
aver = aver/size;
return aver;
}
void compute(student_t s[],int size){
int i,j;
for(i=0;i<size;i++){
s[i].avg = (s[i].math+s[i].c)/2;
}
for(i=0;i<size;i++){
for(j=0;j<size;j++){
if(s[i].avg<s[j].avg){
s[i].rank++;
}
}
}
}
int main(){
student_t s[5];
int i=0,aver;
for(i=0;i<5;i++){
s[i].math = rand()%100;
s[i].c = rand()%100;
s[i].rank=0;
printf("math = %d,c = %d\n",s[i].math,s[i].c);
}
aver=average(s,5);
printf("aver= %d\n",aver);
compute(s,5);
for(i=0;i<5;i++){
printf("rank = %d\n",s[i].rank);
}
}