c語(yǔ)言結(jié)構(gòu)體函數(shù)公式 c語(yǔ)言 結(jié)構(gòu)體函數(shù)

C語(yǔ)言結(jié)構(gòu)體及函數(shù)問(wèn)題

沒(méi)分啊,我就不具體看了,給你個(gè)慢慢看吧

創(chuàng)新互聯(lián)公司2013年至今,先為館陶等服務(wù)建站,館陶等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為館陶企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

#includestdio.h

#includestring.h

#includestdlib.h

struct stu

{

int num;

int wuli;

int huaxue;

int math;

};

FILE *fp;

//添加學(xué)生信息,可以排除與已存的沖突;

void add()

{

int a,b,c,d,n=0;

struct stu student;

fp=fopen("score.txt","r+");

printf("請(qǐng)輸入要添加學(xué)生的學(xué)號(hào)、物理成績(jī)、化學(xué)成績(jī)及數(shù)學(xué)成績(jī)\n");

scanf("%d%d%d%d",student.num,student.wuli,student.huaxue,student.math);

while(!feof(fp))

{

fscanf(fp,"%d%d%d%d",a,b,c,d);

if(student.num==a)

{

printf("該學(xué)生信息已存在,不需要添加\n");

fclose(fp);

n=1;

break;

}

}

if(n==0)

{

printf("信息庫(kù)中沒(méi)有該學(xué)生信息,可以添加\n");

fseek(fp,0,2);//文件末尾添加;

fprintf(fp,"%d\t%d\t%d\t%d\n",student.num,student.wuli,student.huaxue,student.math);

fclose(fp);

}

}

//修改學(xué)生信息;

void modify()

{

int n=0,number,a,b,c,d,offset;

struct stu student;

fp=fopen("score.txt","r+");

if(fp==NULL)

{

printf("信息庫(kù)為空\(chéng)n");

exit(0);

}

printf("請(qǐng)輸入要修改學(xué)生的學(xué)號(hào)\n");

scanf("%d",number);

while(!feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%d%d%d%d",a,b,c,d);

if(number==a)

{

printf("該學(xué)生信息為:\n");

printf("%d\t%d\t%d\t%d\n",a,b,c,d);

printf("請(qǐng)輸入要修改的信息\n");

scanf("%d%d%d%d",student.num,student.wuli,student.huaxue,student.math);

fseek(fp,offset,0);

fprintf(fp,"%d\t%d\t%d\t%d\n",student.num,student.wuli,student.huaxue,student.math);

n=1;

break;

}

}

if(n==0)

{

printf("該學(xué)生信息不存在\n");

}

fclose(fp);

}

//刪除學(xué)生信息;

void del()

{

int n=0,number,a,b,c,d,m,offset;

fp=fopen("score.txt","r+");

if(fp==NULL)

{

printf("信息庫(kù)為空\(chéng)n");

exit(0);

}

printf("請(qǐng)輸入刪除學(xué)生的學(xué)號(hào)\n");

scanf("%d",number);

while(!feof(fp))

{

offset=ftell(fp);

fscanf(fp,"%d%d%d%d",a,b,c,d);

if(number==a)

{

printf("該學(xué)生信息為:\n");

printf("%d\t%d\t%d\t%d\n",a,b,c,d);

printf("是否要?jiǎng)h除該學(xué)生信息,是:1 ;否:0\n");

scanf("%d",m);

if(m)

{

fseek(fp,offset,0);

fprintf(fp,"%s\t%s\t%s\t%s"," "," "," "," ");

printf("\n");

printf("該學(xué)生信息已刪除\n");

}

else printf("您已放棄刪除該學(xué)生信息\n");

n=1;

break;

}

}

if(n==0)

{

printf("該學(xué)生信息不存在\n");

}

fclose(fp);

}

//查找學(xué)生信息;

void search()

{

int n=0,number,a,b,c,d,m;

char s[10];

fp=fopen("score.txt","r+");

if(fp==NULL)

{

printf("信息庫(kù)為空\(chéng)n");

exit(0);

}

printf("請(qǐng)選擇查找方式:1--按學(xué)號(hào)查找;0--按學(xué)科查找\n");

scanf("%d",m);

if(m)

{

printf("請(qǐng)輸入要查找學(xué)生的學(xué)號(hào)\n");

scanf("%d",number);

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

{

if(number==a)

{

printf("已找到,該學(xué)生信息為:\n");

printf("%s %s %s %s\n","學(xué)號(hào)","物理成績(jī)","化學(xué)成績(jī)","數(shù)學(xué)成績(jī)");

printf("%d\t %d\t %d\t %d\n",a,b,c,d);

n=1;

break;

}

}

if(n==0)

{

printf("該學(xué)生信息不存在\n");

}

fclose(fp);

}

else

{

printf("請(qǐng)輸入要查找的學(xué)科\n");

scanf("%s",s);

if(strcmp(s,"wuli")==0)

{

printf("學(xué)號(hào)\t物理成績(jī)\n");

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

printf("%d\t%d\n",a,b);

fclose(fp);

}

if(strcmp(s,"huaxue")==0)

{

printf("學(xué)號(hào)\t化學(xué)成績(jī)\n");

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

printf("%d\t%d\n",a,c);

fclose(fp);

}

if(strcmp(s,"math")==0)

{

printf("學(xué)號(hào)\t數(shù)學(xué)成績(jī)\n");

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

printf("%d\t%d\n",a,d);

fclose(fp);

}

if(strcmp(s,"wuli")strcmp(s,"huaxue")strcmp(s,"math") )

{

printf("錯(cuò)誤,要查找的學(xué)科不存在\n");

fclose(fp);

}

}

}

//統(tǒng)計(jì)學(xué)生信息;

void tongji()

{

int n=0,a,b,c,d,m,k,x[100],i,j,l=1;

float sum=0,h[100],k1;

fp=fopen("score.txt","r+");

if(fp==NULL)

{

printf("信息庫(kù)為空\(chéng)n");

exit(0);

}

printf("0--統(tǒng)計(jì)單科平均成績(jī)\n");

printf("1--統(tǒng)計(jì)單個(gè)學(xué)生的平均成績(jī)和總成績(jī),對(duì)學(xué)生排名\n");

printf("請(qǐng)選擇統(tǒng)計(jì)類型\n");

scanf("%d",m);

if(!m)

{

printf("1--統(tǒng)計(jì)物理的平均成績(jī)\n");

printf("2--統(tǒng)計(jì)化學(xué)的平均成績(jī)\n");

printf("3--統(tǒng)計(jì)數(shù)學(xué)的平均成績(jī)\n");

printf("請(qǐng)選擇要統(tǒng)計(jì)的學(xué)科\n");

scanf("%d",m);

if(m==1)

{

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

{

sum=sum+b;

n++;

}

printf("物理的平均成績(jī)?yōu)?%2.2f\n",sum/n);

fclose(fp);

}

if(m==2)

{

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

{

sum=sum+c;

n++;

}

printf("化學(xué)的平均成績(jī)?yōu)?%.2f\n",sum/n);

fclose(fp);

}

if(m==3)

{

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

{

sum=sum+d;

n++;

}

printf("數(shù)學(xué)的平均成績(jī)?yōu)?%.2f\n",sum/n);

fclose(fp);

}

}

else

{

while(fscanf(fp,"%d%d%d%d",a,b,c,d)!=-1)

{

h[n]=(float)(b+c+d);

x[n]=a;

n++;

}

for(i=0;l==1in-1;i++)

{

l=0;

for(j=0;jn-1-i;j++)

{

if(h[j]h[j+1])

{

k1=h[j];

h[j]=h[j+1];

h[j+1]=k1;

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

l=1;

}

}

}

printf("排序后\n");

printf("學(xué)號(hào)\t總成績(jī)\t平均成績(jī)\n");

for(i=0;in;i++)

printf("%d\t%3.0f\t%.2f\n",x[i],h[i],h[i]/3.0);

}

fclose(fp);

}

void main()

{

int m;

/*fp=fopen("score.txt","w");

fprintf(fp,"%s\t%s\t%s\t%s\n","學(xué)號(hào)","物理成績(jī)","化學(xué)成績(jī)","數(shù)學(xué)成績(jī)");

fclose(fp);*/

while(1)

{

printf("\n\t\t*********歡迎使用學(xué)生信息管理系統(tǒng)*********\n\n");

printf("\n\t\t添加,請(qǐng)按1");

printf("\n\t\t修改,請(qǐng)按2");

printf("\n\t\t刪除,請(qǐng)按3");

printf("\n\t\t查詢,請(qǐng)按4");

printf("\n\t\t統(tǒng)計(jì),請(qǐng)按5");

printf("\n\t\t退出,請(qǐng)按0\n");

printf("\n\t\t********************************************\n\n");

printf("Please select(0--5):");

scanf("%d",m);

if(m=0m=5)

{

switch(m)

{

case 1: add();

break;

case 2: modify();

break;

case 3: del();

break;

case 4: search();

break;

case 5: tongji();

break;

case 0: exit(0);

}

printf("\n\n操作完畢,請(qǐng)?jiān)俅芜x擇!");

}

else

printf("\n\n選擇錯(cuò)誤,請(qǐng)?jiān)俅芜x擇!");

}

}

C語(yǔ)言結(jié)構(gòu)體類型函數(shù)

void f(A c) /* 注意:c結(jié)構(gòu)變量名 但這個(gè)c也是個(gè)復(fù)制品,與原實(shí)參只是一樣的內(nèi)容,卻不是同一個(gè)??! */ 所以結(jié)果還是a={1,2}; 答案為B

C語(yǔ)言struct函數(shù)?

SqList L;定義了一個(gè)結(jié)構(gòu)體變量L,調(diào)用的時(shí)候用的是指針指向該變量地址。

插入的函數(shù)有問(wèn)題,插入位置應(yīng)為i+1。

C語(yǔ)言結(jié)構(gòu)體函數(shù)

STU??f?(STU??a)

{ ?STU??b={"Zhao",?'m',?85,?90};

int??i;

strcpy(?a.name,?b.name?);

a.sex?=?b.sex;

for?(?i=0;?i2;?i++?)??a.score[i]?=?b.score[i];

以上是將b中的數(shù)據(jù)賦值給a,相當(dāng)于a=b;這樣的一個(gè)操作

return??a;?

}

main()

{ ?STU??c=?{?"Qian",?'f',?95,?92?},?d;

d?=?f(c);//這里傳的c是個(gè)復(fù)制品(傳遞的不是結(jié)構(gòu)體指針),所以c不會(huì)變,d接收f(shuō)()函數(shù)的返回值,因?yàn)榉祷刂档膬?nèi)容是f()中的b的值,所以,d與c不同

printf?("%s,%c,%d,%d,?",?d.name,?d.sex,?d.score[0],?d.score[1]);

printf?("%s,%c,%d,%d\n",?c.name,?c.sex,?c.score[0],?c.score[1]);

}

輸出結(jié)果為:A)??Zhao,m,85,90,?Qian,f,95,92

網(wǎng)頁(yè)題目:c語(yǔ)言結(jié)構(gòu)體函數(shù)公式 c語(yǔ)言 結(jié)構(gòu)體函數(shù)
轉(zhuǎn)載注明:http://www.muchs.cn/article8/ddihpop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)ChatGPT、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管