輸入十名顧客的信息到結(jié)構(gòu)體數(shù)組中,最后統(tǒng)計(jì)這十名中購買商品總額最大的顧客,將他的信息打印輸出。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供東寶網(wǎng)站建設(shè)、東寶做網(wǎng)站、東寶網(wǎng)站設(shè)計(jì)、東寶網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、東寶企業(yè)網(wǎng)站模板建站服務(wù),十多年東寶做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
//并按照下列各式把信息存入到customer.txt中:
//0001 Kate 5 822.8
//0002 Jame 7 2761.9
//2011.1.11 11:37
#includestdio.h
#includemath.h
#define CST_NUM 10//宏定義客戶數(shù)目
struct customer
{
int num;
char name[20];
int amount;
float value;
}cst[CST_NUM];//定義結(jié)構(gòu)體customer,并聲明結(jié)構(gòu)體數(shù)組cst[CST_NUM].
void printline(void);
void sort_cst(struct customer[],int);
void print_cst(struct customer[],int);
void main(void)
{
FILE *f1;//聲明文件指針
int h=sin(0);//為編譯器裝載float類型
int i;
for(i=0;iCST_NUM;i++)//從鍵盤讀取客戶信息
{
printline();
printf("請輸入第%d名顧客的編號",i+1);
scanf("%d",cst[i].num);
putchar('\n');
fflush(stdin);//清流
printf("請輸入第%d名顧客的姓名",i+1);
scanf("%s",cst[i].name);
putchar('\n');
fflush(stdin);//清流
printf("請輸入第%d名顧客的商品數(shù)量",i+1);
scanf("%d",cst[i].amount);
putchar('\n');
printf("請輸入第%d名顧客的商品總額",i+1);
scanf("%f",cst[i].value);
putchar('\n');
fflush(stdin);//清流
}
sort_cst(cst,CST_NUM);//客戶信息排序
print_cst(cst,CST_NUM);//將客戶信息輸出至屏幕
f1=fopen("customer.txt","w");//打開文件
fprintf(f1,"客戶編號 客戶姓名 商品數(shù)量 商品總額\n");
for(i=0;iCST_NUM;i++)
{
fprintf(f1,"%5d%12s%10d%10.1f\n",cst[i].num,cst[i].name,cst[i].amount,cst[i].value);//存入客戶信息
}
fclose(f1);//關(guān)閉文件
getch();
}
void sort_cst(struct customer cst[],int cst_num)//自定義函數(shù):客戶信息排序
{
int i,j;
struct customer temp;
for(i=0;icst_num;i++)
{
for(j=0;jcst_num;j++)
{
if(cst[i].valuecst[j].value)
{
temp=cst[i];
cst[i]=cst[j];
cst[j]=temp;
}
} }
}
void print_cst(struct customer cst[],int cst_num)//自定義函數(shù):客戶信息顯示
{
int i;
printline();
printf("客戶編號 客戶姓名 商品數(shù)量 商品總額\n");
for(i=0;icst_num;i++)
{
printf("%5d",cst[i].num);
printf("%12s",cst[i].name);
printf("%10d",cst[i].amount);
printf("%10.1f\n",cst[i].value);
}
printline();
}
void printline(void)//自定義函數(shù):畫線
{
int i;
printf("\n");
for(i=0;i50;i++)
{
printf("_");
}
printf("\n");
}
學(xué)生管理系統(tǒng)
#includestdio.h
#includestdlib.h
#includestring.h
/********定義學(xué)生結(jié)構(gòu)體********/
typedef struct Link
{
int number;
char name[10];
char sex[4];
int Chinese;
int English;
int Match;
float average;
struct Link *next;
}Student;
int amount=0;;//記錄學(xué)生個(gè)數(shù)
/*****************************/
/***********初始化學(xué)生表*************/
Student *InitStudent()
{
Student *Q;
Q=(Student*)malloc(sizeof(Student));
if(Q!=NULL)
{
Q-next=NULL;
return Q;
}
else
return NULL;
}
/***********************************/
/**************創(chuàng)建學(xué)生數(shù)據(jù)表*********************/
int CreatStudent(Student *Q)
{
int flag,n;
Student *s;
n=0;
while(flag)
{
s=(Student*)malloc(sizeof(Student));
if(s==NULL)
{
printf("創(chuàng)建失敗!");
return 0;
}
printf("請輸入學(xué)號(輸入0退回上一步):");
scanf("%d",s-number);
if(s-number==0)
goto endp;
if(n==s-number)
{
printf("輸入學(xué)號已存在!\n");
goto end;
}
while(s-number0)
{
getchar();
printf("\n學(xué)號不能為小于零!");
printf("\n請輸入學(xué)號,輸入0退回上一步:");
scanf("%d",s-number);
}
printf("請輸入姓名:");
scanf("%s",s-name);
printf("請輸入性別m/w:");
scanf("%s",s-sex);
printf("請輸入語文成績:");
scanf("%d",s-Chinese);
while(s-Chinese100||s-Chinese0)
{
getchar();
printf("請輸入語文成績:");
scanf("%d",s-Chinese);
}
printf("請輸入數(shù)學(xué)成績:");
scanf("%d",s-Match);
while(s-Match100||s-Match0)
{
getchar();
printf("請輸入數(shù)學(xué)成績:");
scanf("%d",s-Match);
}
printf("請輸入英語成績:");
scanf("%d",s-English);
while(s-English100||s-English0)
{
getchar();
printf("請輸入英語成績:");
scanf("%d",s-English);
}
s-average=(s-Chinese+s-English+s-Match)/3;
n=s-number;
s-next=Q-next;
Q-next=s;
amount++;
end: printf("是否繼續(xù)輸入數(shù)據(jù):1/0\n");
scanf("%d",flag);
}
endp:printf("創(chuàng)建完畢!\n");
printf("輸入了%d個(gè)學(xué)生",amount);
return 1;
}
/******************************************/
/*********************查找學(xué)生數(shù)據(jù),以學(xué)號為前提****************/
Student *FindStudent(Student *Q,int x)
{
Student *q;
q=Q-next;
while(q!=NULLq-number!=x)
q=q-next;
if(q!=NULL)
return q;
else
return NULL;
}
/******************************************************/
/**************************修改學(xué)生數(shù)據(jù)**************************/
int ModifStudent(Student *Q,int x)
{
int flag,n;
Student *q;
q=Q-next;
while(q!=NULLq-number!=x)
q=q-next;
if(q!=NULL)
{
while(n)
{
printf("\n修改成績科目:1.語文 2.英語 3.數(shù)學(xué):");
scanf("%d",flag);
if(flag==1)
{
getchar();
printf("\n請輸入語文成績:");
scanf("%d",q-Chinese);
while(q-Chinese100||q-Chinese0)
{
getchar();
printf("\n請輸入語文成績:");
scanf("%d",q-Chinese);
}
}
else if(flag==2)
{
getchar();
printf("\n請輸入數(shù)學(xué)成績:");
scanf("%d",q-Match);
while(q-Match100||q-Match0)
{
getchar();
printf("\n請重新輸入數(shù)學(xué)成績:");
scanf("%d",q-Match);
}
}
else if(flag==3)
{
getchar();
printf("\n請輸入英語成績:");
scanf("%d",q-English);
while(q-English100||q-English0)
{
printf("\n請重新英語成績:");
scanf("%d",q-English);
}
}
q-average=(q-Chinese+q-English+q-Match)/3;
printf("\n是否繼續(xù)修改數(shù)據(jù):1/0\n");
scanf("%d",n);
}
return 1;
}
return 0;
}
/******************************************************/
/************************排列學(xué)生數(shù)據(jù)***********************/
Student *Sort(Student *Q,int course)
{
Student *p,*q,*t;
int number,Chinese,English,Match,score;
char name[10],sex[2];
if(Q-next==NULL)
{
printf("沒有構(gòu)造學(xué)生表!");
return NULL;
}
switch(course)
{
case 1:for(p=Q-next;p;p=p-next)
{
t=p;
for(q=Q-next;q;q=q-next)
{
if(t-Chinese=q-Chinese)
{
number=t-number;
Chinese=t-Chinese;
English=t-English;
Match=t-Match;
score=t-average;
t-number=q-number;
t-Chinese=q-Chinese;
t-English=q-English;
t-Match=q-Match;
t-average=q-average;
q-number=number;
q-Chinese=Chinese;
q-English=English;
q-Match=Match;
q-average=score;
strcpy(name,t-name);
strcpy(sex,t-sex);
strcpy(t-name,q-name);
strcpy(t-sex,q-sex);
strcpy(q-name,name);
strcpy(q-sex,sex);
t=q;
}
}
}
break;
case 2:for(p=Q-next;p;p=p-next)
{
t=p;
for(q=Q-next;q;q=q-next)
{
if(t-English=q-English)
{
number=t-number;
Chinese=t-Chinese;
English=t-English;
Match=t-Match;
score=t-average;
t-number=q-number;
t-Chinese=q-Chinese;
t-English=q-English;
t-Match=q-Match;
t-average=q-average;
q-number=number;
q-Chinese=Chinese;
q-English=English;
q-Match=Match;
q-average=score;
strcpy(name,t-name);
strcpy(sex,t-sex);
strcpy(t-name,q-name);
strcpy(t-sex,q-sex);
strcpy(q-name,name);
strcpy(q-sex,sex);
t=q;
}
}
}
break;
case 3:for(p=Q-next;p;p=p-next)
{
t=p;
for(q=Q-next;q;q=q-next)
{
if(t-Match=q-Match)
{
number=t-number;
Chinese=t-Chinese;
English=t-English;
Match=t-Match;
score=t-average;
t-number=q-number;
t-Chinese=q-Chinese;
t-English=q-English;
t-Match=q-Match;
t-average=q-average;
q-number=number;
q-Chinese=Chinese;
q-English=English;
q-Match=Match;
q-average=score;
strcpy(name,t-name);
strcpy(sex,t-sex);
strcpy(t-name,q-name);
strcpy(t-sex,q-sex);
strcpy(q-name,name);
strcpy(q-sex,sex);
t=q;
}
}
}
break;
}
return Q;
}
int SaveStudent(Student *Q)
{
int i=0;
Student *p;
FILE *fp;
char open[20];
p=Q-next;
printf("請輸入文件路徑:");
scanf("%s",open);
if((fp=fopen(open,"w+"))==NULL)
{
printf("打開失敗!");
return 0;
}
fprintf(fp,"|學(xué)號\t|姓名\t|性別\t|語文\t|英語\t|數(shù)學(xué)\t|均分\t|\n");
while(p!=NULLiamount)
{
i++;
fwrite(p,sizeof(Student),1,fp);
p=p-next;
//fprintf(fp,"|%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|%d\t|\n",p-number,p-name,p-sex,p-Chinese,p-English,p-Match,p-average);
}
fclose(fp);
return 1;
}
/******************************************************************/
/************************輸出學(xué)生成績*******************************************/
void print(Student *Q)
{
Student *p;
p=Q;
if(Q-next==NULL)
printf("沒有學(xué)生資料!");
else
{
printf("結(jié)果為:\n");
while(p-next!=NULL)
{
p=p-next;
printf("|學(xué)號\t|姓名\t|性別\t|語文\t|英語\t|數(shù)學(xué)\t|均分\t|\n");
printf("|%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|%0.2f\t|\n",p-number,p-name,p-sex,p-Chinese,p-English,p-Match,p-average);
}
}
}
/********************************************************************************/
/********************************************************************************/
void LoadStudent()
{
int flag=1;
char FileName[20];
Student *p;
FILE *fp;
printf("請輸入調(diào)出文件的路徑:");
scanf("%s",FileName[20]);
if((fp=fopen(FileName,"r+"))!=NULL)
{
fscanf(fp,"|學(xué)號\t|姓名\t|性別\t|語文\t|英語\t|數(shù)學(xué)\t|均分\t|\n");
printf("|學(xué)號\t|姓名\t|性別\t|語文\t|英語\t|數(shù)學(xué)\t|均分\t|\n");
while(flag)
{
p=(Student*)malloc(sizeof(Student));
fscanf(fp,"%d%s%s%d%d%d%d",p-number,p-name,p-sex,p-Chinese,p-English,p-Match,p-average);
if(p-number==NULL)
flag=0;
else
{
printf("|%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|%d\t|\n",p-number,p-name,p-sex,p-Chinese,p-English,p-Match,p-average);
flag=1;
}
}
}
else
printf("調(diào)出失?。?);
fclose(fp);
}
/***************************************菜單界面********************************/
void Menu()
{
int flag,n,sure,course;
Student *Q,*p,*L;
n=0;
Q=InitStudent();
begin:
printf("\n\t\t\t 學(xué)生管理系統(tǒng)(可輸入漢字)\n");
printf("|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n");
printf("|1輸入學(xué)生數(shù)據(jù)\t\t\t2修改學(xué)生數(shù)據(jù)\t\t\t3查找學(xué)生成績|\n");
printf("|4排列學(xué)生數(shù)據(jù)\t\t\t5保存學(xué)生成績\t\t\t6調(diào)出文件資料|\n");
printf("|7顯示學(xué)生資料\t\t\t0結(jié)束程序 \t\t\t |\n");
printf("|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n");
printf("\n操作方式:");
scanf("%d",flag);
switch(flag)
{
case 0:goto end;break;
case 1:CreatStudent(Q);
print(Q);
goto begin;
case 2:while(n==0)
{
printf("請輸入查找學(xué)生學(xué)號:");
scanf("%d",n);
}
sure=ModifStudent(Q,n);
if(sure==1)
printf("修改成功\n");
else
printf("修改失敗\n");
n=0;
goto begin;
case 3:while(n==0)
{
printf("請輸入查找學(xué)生學(xué)號:");
scanf("%d",n);
}
p=FindStudent(Q,n);
if(p!=NULL)
{
printf("\n查詢結(jié)果為:\n");
printf("|學(xué)號\t|姓名\t|性別\t|語文\t|英語\t|數(shù)學(xué)\t|均分\t|\n");
printf("|%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|%d\t|\n",p-number,p-name,p-sex,p-Chinese,p-English,p-Match,p-average);
}
else
printf("查找失敗\n");
n=0;
goto begin;
case 4:printf("請輸入排序規(guī)則(輸入0返回上一步)\n1.語文 2.英語 3.數(shù)學(xué):");
scanf("%d",course);
if(course==0)
goto begin;
else
{
L=Sort(Q,course);
if(L!=NULL)
print(L);
}
goto begin;
case 5:SaveStudent(Q);
goto begin;
case 6:LoadStudent();
goto begin;
case 7:print(Q);
goto begin;
}
end:printf("\n\t\t\t\t 學(xué)生管理系統(tǒng)\n");
printf("|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n");
printf("|1輸入學(xué)生數(shù)據(jù)\t\t\t2修改學(xué)生數(shù)據(jù)\t\t\t3查找學(xué)生成績|\n");
printf("|0退出程序\n");
printf("|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n");
}
void main()
{
Menu();
}
給你個(gè)大概思路~~~~~
1。把每個(gè)學(xué)生的的信息先組合成一個(gè)結(jié)構(gòu)體
struct
Student
{
……},
然后就用它來定義學(xué)生,
struct
Student
stu[100];(有能力的話建義用動(dòng)態(tài)內(nèi)存的鏈表結(jié)構(gòu),不明白當(dāng)我沒說)
2?!白皂斚蛳拢鸩角缶?,把各個(gè)功能寫成各個(gè)函數(shù),如添加,刪除,查詢,退出……(看你自己了,這正是C語言的模塊化思想
3。主函數(shù)就是打出這些選擇,讓USER
去選,然后調(diào)用相應(yīng)的函數(shù)去執(zhí)行,完了又回到主菜單,以此循環(huán)
如果能使用圖形的界面,增加動(dòng)畫之類的會(huì)更好的(呵呵,不會(huì)當(dāng)我沒說~~~~)
#include
#include
#include
#include
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
int num;
char name[10];
int score;
struct student *next;
};
int n;
struct student *creat()
{
struct student *head;
struct student *p1,*p2;
p1=p2=(struct student *)malloc(LEN);
printf("請輸入數(shù)據(jù):\n");
printf("-學(xué)號---姓名---成績-\n");
scanf("%d%s%d",p1-num,p1-name,p1-score);
head=NULL;
n=0;
while(p1-num!=NULL)
{
n=n+1;
if(n==1) head=p1;
else p2-next=p1;
p2=p1;
p1=(struct student *)malloc(LEN);
scanf("%d%s%d",p1-num,p1-name,p1-score);
}
p2-next=NULL;
return(head);
}
void print(struct student *head)
{
struct student *p;
p=head;
if(head!=NULL)
{
printf("-學(xué)號---姓名---成績-\n");
while(p!=NULL)
{
printf("%d %s %d\n",p-num,p-name,p-score);
p=p-next;
}
}
else printf("沒有數(shù)據(jù) !\n");
}
struct student *del(int num,struct student *head)
{
int a=0;
struct student *p1,*p2;
do
{
p1=head;
if(head==NULL)
{
printf("沒有數(shù)據(jù) !\n");
goto end;
}
while(p1-num!=nump1-next!=NULL)
{
p2=p1;p1=p1-next;
}
if(p1-num==num)
{
if(p1==head) head=p1-next;
else p2-next=p1-next;
printf("刪除記錄學(xué)號為N0.%d\n",num);
n=n-1;
a++;
}
}while(p1-next!=NULL);
if(a==0)
printf("學(xué)號未找到 !\n");
end:
return(head);
}
struct student *add(int num,char name[],int score,struct student *head)
{
struct student *p0,*p1,*p2;
p0=(struct student *)malloc(LEN);
p0-num=num,strcpy(p0-name,name),p0-score=score;
p1=head;
if(num==0)
return(head);
if(head==NULL)
{
head=p0;
p0-next=NULL;
}
while(p0-nump1-nump1-next!=NULL)
{
p2=p1;
p1=p1-next;
}
if(p0-numnum)
{
if(p1==head) head=p0;
else p2-next=p0;
p0-next=p1;
}
else
{
p1-next=p0;
p0-next=NULL;
}
printf("增加記錄學(xué)號為:%d\n",num);
n=n+1;
return(head);
}
void num(struct student *head)
{
int num,a=0;
struct student *p;
printf("------請輸入 \"0\" 結(jié)束輸入--------\n");
do
{
p=head;
printf("請輸入要查找的學(xué)號:");
scanf("%d",num);
if(num!=0)
printf("-學(xué)號---姓名---成績-\n");
while(p!=NULL)
{
if(p-num==num)
{
printf("%d %s %d\n",p-num,p-name,p-score);
a++;
}
p=p-next;
}
if(a==0num!=0)
printf("學(xué)號沒找到!\n");
a=0;
}while(num!=0);
system("cls");
}
void name(struct student *head)
{
char name[10],a=0;
struct student *p;
printf("------請輸入 \"0\" 結(jié)束輸入------\n");
do
{
p=head;
printf("請輸入要查找的名字:");
scanf("%s",name);
if(name[0]!='0')
printf("-學(xué)號---姓名---成績-\n");
while(p!=NULL)
{
if(strcmp(p-name,name)==0)
{
printf("%d %s %d\n",p-num,p-name,p-score);
a++;
}
p=p-next;
}
if(a==0name[0]!='0')
printf("名字未找到 !\n");
a=0;
}while(name[0]!='0');
system("cls");
}
void search(struct student *head)
{
int a;
struct student *p;
p=head;
do
{
printf("1.按學(xué)號查找\n2.按名字查找\n3.退出\n");
scanf("%d",a);
system("cls");
switch(a)
{
case 1:num(p);break;
case 2:name(p);break;
}
}while(a!=3);
}
struct student *sort(struct student *head)
{
struct student *p1,*p2;
int i,j;
int num0,score0;
char string[10];
for(i=0;in-1;i++)
{
p1=head;
for(j=n-1;j0;j--)
while(p1-next!=NULL)
{
p2=p1;p1=p1-next;
if(p2-scorep1-score)
{
num0=p1-num;
p1-num=p2-num;
p2-num=num0;
strcpy(string,p1-name);
strcpy(p1-name,p2-name);
strcpy(p2-name,string);
score0=p1-score;
p1-score=p2-score;
p2-score=score0;
}
}
}
return(head);
}
void main()
{
struct student *head=NULL;
int num,score,a;
char name[10];
do
{
printf("1.創(chuàng)建記錄\n2.刪除記錄\n3.增加記錄\n4.查找記錄\n5按成績排序\n6.顯示當(dāng)前記錄\n7.退出\n");
scanf("%d",a);
system("cls");
switch(a)
{
case 1:printf("------請輸入 \"0 0 0\" 結(jié)束輸入------\n");head=creat();print(head);getch();system("cls");break;
case 2:printf("------請輸入 \"0\" 結(jié)束輸入--------\n");do{printf("請輸入要?jiǎng)h除記錄的學(xué)號:");scanf("%d",num);head=del(num,head);print(head);}while(num!=0);system("cls");break;
case 3:printf("------請輸入 \"0 0 0\" 結(jié)束輸入------\n");do{printf("請輸入要增加的記錄數(shù)據(jù):\n");printf("-學(xué)號---姓名---成績-\n");scanf("%d%s%d",num,name,score);head=add(num,name,score,head);print(head);}while(num!=0);system("cls");break;
case 4:search(head);break;
case 5:head=sort(head);print(head);getch();system("cls");break;
case 6:print(head);getch();system("cls");break;
}
}while(a!=7);
1、 函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是________。
C) 將串str2復(fù)制到串str1中后再將串str3連接到串str1之后
2、 若有以下調(diào)用語句,則正確的fun函數(shù)首部是
main()
{ ∶
∶
int a;float x;
∶
∶
fun(x,a);
∶
∶
}
B) void fun(float a,int x)
3、 有如下程序
int func(int a,int b)
{ return(a+b); }
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r); }
該程序的輸出結(jié)果是__________。
D) 15
4、 函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+……+1/(n*n)
請你在下面程序中的劃線部分填入________,完成求π的功能。
#include "math.h"
double pi(long n)
{ double s=0.0; long i;
for(i=1;i=n;i++) s=s+________;
return (sqrt(6*s)); }
A) 1.0/i/i
5、 在調(diào)用函數(shù)時(shí),如果實(shí)參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞
方式是________。
B) 單向值傳遞
6、 對于C語言的函數(shù),下列敘述中正確的是________。
A) 函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套 (這答案有待斟酌)
7、 函數(shù)f的功能是:測定字符串的長度,空白處應(yīng)填入________。
int f(char s[ ])
{ int i=0;
while(s[i]!='\0') i++;
return (________); }
main( )
{ printf("%d\n",f("goodbye!")); }
B) i
8、 若主調(diào)用函數(shù)類型為double,被調(diào)用函數(shù)定義中沒有進(jìn)行函數(shù)類型
說明,而return語句中的表達(dá)式類型為float型,則被調(diào)函數(shù)返回
值的類型是________。
C) double 型
9、 以下敘述中,錯(cuò)誤的是________。
D) 形參可以是常量、變量或表達(dá)式
10、 以下敘述中,不正確的是________。
B) 在main函數(shù)體內(nèi)定義的變量是全局變量
//學(xué)生信息采集系統(tǒng)
#includestdio.h
#define N 3 //設(shè)置全局變量N=3
struct student //設(shè)置結(jié)構(gòu)體采集學(xué)生信息
{
char xuehao[13],name[15]; //學(xué)號名字設(shè)為字符
int mingci; // 名次設(shè)為整數(shù)
float score; // 成績設(shè)為實(shí)數(shù)
};
void paixu(struct student a[N]) //定義排序的函數(shù)
{
int i,j;// 定義整形變量 i,j
struct student t; //設(shè)置student的結(jié)構(gòu)體:t
for(i=0;iN-1;i++) //for循環(huán)3次采集3個(gè)學(xué)生信息
{
for(j=i+1;jN;j++)
if(a[j].scorea[i].score)
{
t=a[j];a[j]=a[i];a[i]=t;
}
}
for(i=1;iN;i++)
{
j=i-1;
if(a[j].score==a[i].score) a[i].mingci=i;
else a[i].mingci=i+1;
}
printf("名次 學(xué)號 姓名 成績\n");
for(i=0;iN;i++)
printf("%4d%s %s %.2f\n",a[i].mingci,a[i].xuehao,a[i].name,a[i].score);
}
void chazhao(struct student b[N]) //定義查找學(xué)生信息的函數(shù)
{
char numbers[13]; //定義數(shù)組 numbers有0-13個(gè)元素
int s;
printf("請輸入您要查找的學(xué)號:\n");
scanf("%s",numbers);//scanf numbers的地址
for(s=0;sN;s++) //for循環(huán)3次打印符合條件的學(xué)生信息
{
if(b[s].xuehao==numbers)
{
printf("學(xué)號 姓名 成績\n");
printf("%4d%s %s %.2f",b[s].xuehao,b[s].name,b[s].score);
}
else printf("not found\n");
}
}
void bujige(struct student c[N])//定義不及格的學(xué)生信息
{
int i,k=0;
for(i=0;iN;i++)
{
if(c[i].score60.0)
k=k+1;
}
printf("不及格人數(shù)有%d位\n",k);
}
main()
{
struct student stu[N];
int i,j;
printf("請按學(xué)號,姓名,成績的順序依次輸入每個(gè)學(xué)生的信息\n");
for(i=0;iN;i++)
{
printf("請輸入第%d位同學(xué)的信息:\n",i+1);
scanf("%s %s %f",stu[i].xuehao,stu[i].name,stu[i].score);
}
while(j!=0)//根據(jù)j的值采取不同的操作
{
printf("1:按成績排名次 2:統(tǒng)計(jì)不及格人數(shù) 3:查找出學(xué)生信息 0:退出\n");
printf("請輸入要選擇的數(shù)字:\n");
scanf("%d",j);//scanf 調(diào)用j的地址
switch(j)
{
case 1:paixu(stu); break;
case 2:bujige(stu); break;
case 3:chazhao(stu); break;
}
}
printf("謝謝您的使用!");
}