c語言題目 求大神給個正確答案我對對

2021-04-20 19:03:46 字數 4353 閱讀 6859

1樓:匿名使用者

簡單寫了一個輸入及顯示程式。

預設#define debug 0,定義這個是為了除錯用,免得每次都要輸入資料,麻煩;想要除錯,設debug成1就好。

具體**示例:

#include

#include

#include

#define len sizeof(struct student)

#define debug 0

struct subject ;

struct student

;struct student *insertonestudentmessage(struct student *header)

struct student *inputmorestudentmessages(struct student *header)

p = p->next;

}if(p == null) else

}int comparebytype(struct student *a, struct student *b, int type)

return 0;

}struct student *sortbyclass(struct student *header, int type)

temp = pre = p = header;

next = p->next;

while(next != null) else

} else

}temp = next;

next = next->next;

}return header;

}void printinfo()

void printall(struct student *header)

}struct student * makestudentmessagefordebug(struct student *header),,,

,,};int n = sizeof(message)/sizeof(struct student);

int i;

struct student *pre,*p;

header = pre = p = (struct student*)malloc(len);

for(i=0;iid = message[i].id;

memcpy(p->name, message[i].name, strlen(message[i].name)+1);

memcpy(p->***, message[i].***, strlen(message[i].***)+1);

p->birthday = message[i].birthday;

memcpy(p->grade, message[i].grade, strlen(message[i].grade)+1);

p->report.math = message[i].report.math;

p->report.english = message[i].report.english;

p->report.chinese = message[i].report.chinese;

p->report.chemistry = message[i].report.chemistry;

p->report.physics = message[i].report.physics;

pre = p;

p = (struct student*)malloc(len);

pre->next = p;

}pre->next = null;

return header;

}int main()

while(flag == 0)

}return 0;}

2樓:匿名使用者

做好了,功能包括學生資訊新增,學生資訊顯示,按總體成績排序,學號查詢。資料儲存

在程式目錄下的yh.txt中,請在程式開始前在程式目錄下建立一個空白文字檔案yh.txt。

不要手動輸入資料,用程式輸入,不然除非按照我寫的格式一點不差的準確輸入,否則亂碼。程式會根據功能不同使用不同的視窗大小。預設最新加入的學生資訊在顯示介面會顯示在最上方。

#include

#include

#include

typedef struct student

stu,*stur;

//讀取資訊並建立連結串列

void createlist(stur &l)

while(!feof(fp))

printf("讀入資料成功!\n");

system("pause");

}void plist(stur &l) //列印

printf("  姓名  |  性別  |  生日   |  班級  |  學號  |  年齡  |  語文  |  數學  |  英語  |\n");

while(p)

printf("\n");

插入元素並寫入檔案

fprintf(fp,"%s %s %s %d %d %d %d %d %d",s->name,s->***,s->birth,s->clas,s->stunum,s->age,s->chinese,s->math,s->english);

fclose(fp);

s->next=p->next;

p->next=s;

printf("已更新資料!\n");

}void clist(stur &l) //排序

}if(flag==0)}}

void searchl(stur &l) //單向連結串列查詢只能一個一個排查

p=p->next;

}printf("查無此人!\n");

return;

}void main()}}

一道c語言題目,求大神給答案~輸出是多少?

3樓:匿名使用者

在這個程式中主要看哪個static這是靜態的意思 也就是說 當fun()函式運算完也不釋放x的值 直到mian()函式執行完才釋放x的值,這個程式的執行順序就是,先進入到mian()函式,做迴圈,s=s+fun()到這句的時候會去呼叫fun()函式 這是返回x=x+1=2 s=1+2 這時s=3 for迴圈中i的值自增後

i=2 這時s=3還是滿足條件,這樣一直迴圈下去,這個程式感覺不對,這樣就死迴圈了,因為fun()函式中的x值一直沒有被釋放 第二次執行的時候就變為x=2+1=3了。。這樣 主要就是static的作用

4樓:匿名使用者

static int x =1; //這句說明了x是個 靜態變數,每次呼叫函式修改的時候,會影響下次訪問時的值。所以有:

第一次呼叫fun()函式的時候,x = 1+1 =2;

第二次呼叫fun()函式的時候,x = 2+1 =3;

第三次呼叫fun()函式的時候,x = 3+1 =4;

.....

因此,main()中for迴圈

i=1時, s = 1+fun() = 1 + 2 =3;

i=2時, s = 3+fun() = 3 + 3 = 6;

i=3時, s = 6+fun() = 6 + 4 = 10;

........

由於 在迴圈中,i 是自加1 的,而s 也是增長的,而且增長的速度比 i 增長的快,所以始終有i<=s;

因此,這個程式會陷入死迴圈中~~根本就執行部了printf("%d\n",s);這條語句,因為程式一直在執行上面的迴圈語句....

5樓:黑色

只執行一次 隨後輸出3

求大神給我解答一道c語言的題目,急急急!! 20

6樓:淺吟低唱

#include

int max,min,sum=0;

void find(int a,int n)}void main()

}剛除錯了,完成了要求!我還把輸入的數給你輸一遍出來!

希望我的回答對你有幫助!

c語言程式填空題,求大神指點,答案已給出,給出具體思路,**等

7樓:白色夜空的星星

先看函式fun2,功能是交換兩個數。x給y,y給x。

再看題目說從大到小,fun2中的if語句,pc和pb,pb中要儲存較大值,pa和pc中,pa要儲存較大值,pa和pb中,pa要儲存較大值,fun2,的功能只是用來交換的。

其實fun1就是先選出最小的,然後起中間大的,最後把最大的給了pa。

c語言問題,求大神給解答,C語言問題,求大神給解答

type 35 bta p100 ds1191 pz38 type 35 bta p100 1 ds1191 1 pz38 1 type 35 2 press any key to continue include include include typedef struct node list,n...

c語言題目,求大神幫幫忙寫一寫,C語言題目,求大神幫幫忙寫一寫!!

include int main t,st 5 int i,j file fp1,fp2 if fp1 fopen d stud.dat r null if fp2 fopen d studsort.dat w null for i 0 i 5 i for i 0 i 4 i for j 0 j 4...

求C語言大神解決問題,求C語言大神解決一個問題

字串是以 0結尾的,你刪除幾個字母之後,結尾的地方就要相應的重新置 0標記,也就是在printf之前,要寫str j 0 求c語言大神幫忙,解決一下這道題 include main 宣告結構變數和結構指標,並初始化 struct human x p x 利用結構指標顯示結構中的資料 cout p n...