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...