第一篇:語言_課程設(shè)計1
匯編語言課程實驗報告
實驗名稱
課程設(shè)計1 實驗環(huán)境
硬件平臺:Intel Core i5-3210M 操作系統(tǒng):DOSBox 0.74 in Windows 8.1 軟件工具:Turbo C 2.0, Debug, MASM 實驗內(nèi)容
將實驗7中的Power idea公司的數(shù)據(jù)按照下圖所示的格式在屏幕上顯示出來。
實驗步驟
1.要完成這個實驗,首先我們需要編寫三個子程序。第一個子程序是可以顯示字符串到屏幕的程序,其匯編代碼如下:;名稱:show_str;功能:在屏幕的指定位置,用指定顏色,顯示一個用0結(jié)尾的字符串;參數(shù):(dh)=行號,(dl)=列號(取值范圍0~80),(cl)=顏色,ds:si:該字符串的首地址;返回:顯示在屏幕上 show_str:
push ax
push cx
push dx
push es
push si
push di
mov ax,0b800h
mov es,ax
mov al,160
mul dh
add dl,dl
mov dh,0
add ax,dx
mov di,ax
mov ah,cl
show_str_x:
mov cl,ds:[si]
mov ch,0
jcxz show_str_f
mov al,cl
mov es:[di],ax
inc si
inc di
inc di
jmp show_str_x
show_str_f:
pop di
pop si
pop es
pop dx
pop cx
pop ax
ret 2.第二個程序是將word型數(shù)據(jù)轉(zhuǎn)換為字符串,這樣我們才能調(diào)用第一個程序?qū)⑵浯蛴〕鰜怼5诙€程序匯編代碼如下:;名稱:dtoc_word;功能:將一個word型數(shù)轉(zhuǎn)化為字符串;參數(shù):(ax)=word型的數(shù)據(jù),ds:si指向字符串的首地址;返回:ds:[si]放此字符串,以0結(jié)尾 dtoc_word:
push ax
push bx
push cx
push dx
push si
mov bx,0
dtoc_word_x:
mov dx,0
mov cx,10
div cx
mov cx,ax
add dx,'0'
push dx
inc bx
jcxz dtoc_word_f
jmp dtoc_word_x
dtoc_word_f:
mov cx,bx
dtoc_word_x1:
pop ds:[si]
inc si
loop dtoc_word_x1
pop si
pop dx
pop cx
pop bx
pop ax
ret 3.除了以上兩個程序,我們還需要考慮一個問題,即有些數(shù)據(jù)已經(jīng)大于65535,應(yīng)該編寫一個新的程序,將一個double word型數(shù)轉(zhuǎn)化為字符串。匯編代碼如下:;名稱:dtoc_dword;功能:將一個double word型數(shù)轉(zhuǎn)化為字符串;參數(shù):(dx)=數(shù)的高八位,(ax)=數(shù)的低八位;返回:ds:[si]放此字符串,以0結(jié)尾;備注:會用到divdw函數(shù) dtoc_dword:
push ax
push bx
push cx
push dx
push si
mov bx,0
dtoc_dword_x:
mov cx,10
call divdw
push cx
inc bx
cmp ax,0
jne dtoc_dword_x
cmp dx,0
jne dtoc_dword_x
mov cx,bx
dtoc_dword_x1:
pop ds:[si]
add byte ptr ds:[si],'0'
inc si
loop dtoc_dword_x1
pop si
pop dx
pop cx
pop bx
pop ax
ret 4.考慮到div指令除法溢出的問題,我們還需要寫一個程序,進行不會產(chǎn)生溢出的除法運算,如下:;名稱:divdw;功能:除法,被除數(shù)32位,除數(shù)16位,商32位,余數(shù)16位,不會溢出;參數(shù):(dx)=被除數(shù)高16位,(ax)=被除數(shù)低16位,(cx)=除數(shù);返回:(dx)=商高16位,(ax)=商低16位,(cx)=余數(shù) divdw:
push bx
push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
pop bx
ret 5.將這四個子程序整合起來,并編寫主程序。主程序代碼如下:
assume cs:code
;Ps:函數(shù)中的標(biāo)號為防止沖突,都加了本函數(shù)名為前綴
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
;以上是表示21年的21個字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表示21年公司總收的21個dword型數(shù)據(jù)
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,45257,17800
;以上是表示21年公司雇員人數(shù)的21個word型數(shù)據(jù) data ends
agency segment
db 8 dup(0)agency ends
code segment
start: mov ax,0b800h
mov es,ax
mov di,0
mov cx,80*24
x: mov byte ptr es:[di],' ';將屏幕清空
mov byte ptr es:[di+1],0
inc di
inc di
loop x
mov ax,data
mov es,ax
mov di,0
mov bx,0
mov ax,agency
mov ds,ax
mov si,0
mov dh,2
mov cx,21
x1: push cx
mov ax,es:[di]
mov ds:[si],ax
mov ax,es:[di+2]
mov ds:[si+2],ax
mov byte ptr ds:[si+4],0;顯示年份
mov dl,0
mov cl,7
call show_str
mov ax,es:[84+di]
push dx
mov dx,es:[84+di+2]
call dtoc_dword
;顯示收入
pop dx
mov dl,20
mov cl,7
call show_str
mov ax,es:[84+84+bx]
call dtoc_word
mov dl,40
;顯示雇員數(shù)
mov cl,7
call show_str
mov ax,es:[84+di]
push dx
mov dx,es:[84+di+2]
div word ptr es:[84+84+bx];計算人均收入并顯示
call dtoc_word
pop dx
mov dl,60
mov cl,7
call show_str
add di,4
add bx,2
add dh,1
pop cx
loop x1
mov ah,0
int 16h;加上按任意鍵繼續(xù)功能,可以直接雙擊運行
mov ax,4c00h
int 21h 編譯鏈接程序,其運行效果如下:
實驗總結(jié)
這個題目實際是前幾個題目代碼的整合,難點還是在于如何計算顯示的行和列,如果錯位了1個字節(jié),顯示的時候就可能出現(xiàn)重疊之類的情況。還有要再寫個dword型數(shù)據(jù)轉(zhuǎn)ASCII字符的程序,不過有之前的經(jīng)驗,應(yīng)該也不難。通過此次的程序設(shè)計訓(xùn)練,基本上對之前所學(xué)的所有知識都有了一個系統(tǒng)性的掌握。
第二篇:C語言課程設(shè)計
C語言課程設(shè)計
飛機空戰(zhàn)小游戲
一、實驗環(huán)境
運行系統(tǒng) WINDOWSXP 編程工具C++6.0 地點 程序設(shè)計與仿真實驗室
桌號19電腦IP地址221.12.10.218
二、實驗?zāi)康暮鸵?實驗?zāi)康模?/p>
(1)使學(xué)生進一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和操作算法。
(2)使學(xué)生進一步掌握程序設(shè)計、編寫、調(diào)試能力。(3)使學(xué)生了解軟件開發(fā)的基本步驟和內(nèi)容。
實驗要求::飛機空戰(zhàn)小游戲。功能要求:
1)有主菜單界面,能讓用戶選擇開始、退出、難度等級、查看用戶積分功能;
2)飛機能通過A、S、D、W或上下左右鍵控制移動方向,使用空格鍵發(fā)射子彈;
3)屏幕隨機出現(xiàn)從上到下的敵方子彈; 4)當(dāng)打中敵方子彈時,積分加1;
5)當(dāng)敵方子彈打正飛機時,游戲結(jié)束,并提示用戶是否保存記錄(記錄包括用戶名及積分值),保存后退回到主菜單;
6)當(dāng)選擇主菜單中的“查看用戶積分”選項時,進入第二級菜單,用戶可查看全部用戶積分記錄,也可僅查看積分最高者,也可根據(jù)用戶輸入的用戶名查看;(此處要求使用到鏈表,用于臨時存儲用戶積分數(shù)據(jù));(對鏈表的查找操作)
7)所有用戶積分信息使用文件進行永久性保存; 8)用戶選擇“難度等級”,可設(shè)定游戲不同難度,難度越高,出現(xiàn)敵方子彈數(shù)目及間隔將增加。
三、實驗內(nèi)容和結(jié)果
系統(tǒng)總體設(shè)計:編寫出c語言代碼,運行程序,并調(diào)試程序,最終實現(xiàn)游戲的功能。本程序主要包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動函數(shù)、敵機移動函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個主要函數(shù),包含了不同的功能,對原來的程序作出了很大的改進,用到的主要語句有if語句,for語句、while語句、printf語句、switch語句等等,添加了顏色函數(shù)。
系統(tǒng)模塊設(shè)計:包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動函數(shù)、敵機移動函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個主要函數(shù),其中是否繼續(xù)游戲函數(shù),菜單函數(shù)主要運用了SWITCH語句和If語句,子彈移動函數(shù),敵機移動函數(shù)通過數(shù)組內(nèi)各數(shù)值的變化來完成,設(shè)置函數(shù)主要用PRINTF和SCANF語句進行各項數(shù)值的設(shè)置,游戲控制函數(shù)使用if函數(shù),kbhit()函數(shù),switch函數(shù)組合控制數(shù)組中飛機進行的移動和圖案的變換。最后用打印數(shù)組的方式打印出數(shù)組變換。最后運用SWITCH函數(shù)進行各項菜單內(nèi)容的操作。
實驗的測試和結(jié)果:
四、實驗中的問題及心得
通過本次試驗,使我對c語言有了更深一層次的了解,對for語句、while語句、printf語句、switch語句、顏色函數(shù)等等的了解及使用更加詳細了一些,明白了這些語句的用法,明確了c語言的使用環(huán)境,功能。同時我了解到了一些方法來實現(xiàn)一些C語言作為一個基礎(chǔ)性編程語言是我們在以后編程中不可或缺的語言,使用率肯定會進一步增高。掌握了c語言就相當(dāng)于掌握了一門技術(shù),同時c語言相對而言簡單一些,更容易理解。自己雖然對這個小游戲進行一部分的改造,但是我也感覺這只是其中的很很小的一部分,肯定會有更加強大的功能等待著我們?nèi)ジ纳啤?/p>
同時,我也發(fā)現(xiàn)了自己很多的不足,需要進一步加強這一方面的學(xué)習(xí),在數(shù)據(jù)結(jié)構(gòu)鏈表的使用上還很欠缺,無法使用鏈表進行數(shù)據(jù)的讀取和輸入,還有在兩個程序的連接上還有困難,對于頭文件的理解不到位,鏈表的結(jié)構(gòu),定義,使用指針的方式??這些都需要提高。這些技能的欠缺導(dǎo)致了在 這個小游戲中無法順利完成有關(guān)用戶名和記錄的一些要求。??
附錄:程序清單
#include
void movebul(int [][N]);//子彈移動函數(shù) void movepla(int [][N]);//敵機移動函數(shù) void setting(void);//設(shè)置函數(shù) void menu();//菜單 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局變量:界面、我機初始位、界面寬度、敵機速度、敵機密度、得分、死亡,子彈,飛機,敵機初始圖案,生命
char name[N];char first[N];void main(){ menu();getch();}
void print(int a[][N])//輸出函數(shù) { int i,j;system(“cls”);for(i=0;i a[i][width-1]=4; for(j=0;j { if(a[i][j]==0)printf(“ ”); if((a[i][j]==1)&&(x<15))printf(“%c”,x);//輸出我機的符號 if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子彈 if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//輸出敵機符號 if(i==1&&j==width-1)printf(“總積分:%d”,score);//顯示得分 if(i==2&&j==width-1)printf(“已經(jīng)死亡了%d 次,剩余 %d 條命”,death,life-death);//右上角顯示死亡次數(shù) if(i==3&&j==width-1)printf(“普通按鍵:AD控制左右飛行”); if(i==4&&j==width-1)printf(“ W 發(fā)射子彈”);if(i==5&&j==width-1)printf(“特殊按鍵:+-號加減敵機速度”);if(i==6&&j==width-1)printf(“ /*號單列敵機密度減小增大(均有限制)”); if(i==7&&j==width-1)printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案”); if(i==8&&j==width-1)printf(“tZ鍵變化子彈圖案,P鍵增加生命(均有限制)”); if(i==9&&j==width-1)printf(“注意:向下移動后按其他方向鍵飛機顯現(xiàn)”); } printf(“n”);} } void movebul(int a[][N]){ int i,j;for(i=0;i { if(i==0&&a[i][j]==2) a[i][j]=0; if(a[i][j]==2) { if(a[i-1][j]==3)//加分 { score+=1; printf(“7”); } a[i][j]=0,a[i-1][j]=2; } } } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//從最后一行往上是為了避免把敵機直接沖出數(shù)組。 for(j=0;j if(i==length-1&&a[i][j]==3) a[i][j]=0;//消除敵機,在最低層 if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敵機移動 } if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 } void continuegame()//繼續(xù)游戲 { printf(“用戶%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低記錄na”,score);if((score>0)&&(score<20)) printf(“tttt 回家再練 練吧na”,score);if(score>19) printf(“tttt 你真厲害 na”,score);printf(“游戲結(jié)束n”);printf(“按y鍵繼續(xù)游戲,空格鍵退出游戲(y/n)?n”);printf(“ttt”);switch(getch())//是否要繼續(xù)游戲 { case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} } void setting(void)//設(shè)置函數(shù) { system(“cls”);//清屏 printf(“n 輸入游戲界面的大?。J3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請輸入敵機密度大?。J3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機的飛行速度大?。J3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機的生命(默認1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機的圖案(默認1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 輸入敵機的圖案(默認1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“請輸入用戶名:”);scanf(“%s”,name);printf(“您的用戶名是:%s”,name);if(getch()==27)setting();printf(“游戲說明:按AWSD控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開始游戲,esc鍵進入游戲設(shè)置n”);printf(“游戲時也可更改游戲設(shè)置任意鍵開始nn”);system(“color a”);//設(shè)置背景顏色 if(getch()==27)setting();scr[length-1][pl]=1;//我方飛機初始位置 scr[0][5]=3;while(death { if(kbhit()) switch(getch())//控制設(shè)置按鍵 { case 'a': case 'A':if(pl>0) scr[length-1][pl]=0,scr[length-1][--pl]=1;break; case 'd': case 'D':if(pl scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W': case 'w':if(length>10) { scr[length-1][pl]=0,scr[length-2][pl]=1; length=length-1; };break; case '+':if(speed>2) { speed=speed-2; };break; case '-':speed=speed+1;break;case '*':if(density>5) { density=density-5; };break; case '/':density=density+10;break; case 'l':if(width<40) { width=width+2; };break; case 's':if(length<30) { scr[length-1][pl]=0; length=length+1; scr[length-1][pl]='5'; };break; case ' ':scr[length-2][pl]=2;break; case 'y':y=(y+1)%4;break; case 'x':x=(x)%2+5;break; case 'z':if(z<25) { z=z+1; } else z=15;break; case 'p':life=life+1;break;} if(++j%density==0)//控制生產(chǎn)敵機的速度 { j=0; srand(time(NULL));//產(chǎn)生隨機數(shù) scr[0][rand()%width]=3; scr[rand()%3][rand()%(width+2)]=3; scr[rand()%2][rand()%(width+1)]=3; scr[rand()%4][rand()%(width+4)]=3;//生成隨機敵方飛機 } if(++i%speed==0)//控制敵機移動速度,相對于子彈移動速度 movepla(scr);//飛機移動 movebul(scr);//子彈移動 print(scr);//繪制游戲畫面 } if(score>=max){ max=score; for(i=0;i { name[i]=first[i]; } } if(score score=score;} continuegame();getch();} void menu(){ printf(“n1:游戲設(shè)置n2:游戲說明n3:開始游戲n4:查看用戶信息n5:退出游戲n”); switch(getch()){ case '1': setting();menu();break; case '2':printf(“游戲說明:按AWSD控制我機左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號敵機減速,+號敵機加速n特殊按鍵:/號單列敵機密度減小,*號單列敵機密度增大n”);printf(“VIP按鍵:X鍵變化飛機圖案,Y鍵變化敵機圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開始游戲,esc鍵進入游戲設(shè)置n”);printf(“ 游戲時也可更改游戲設(shè)置”);menu();break; case '3':run();menu();break; case '4':seerecord();menu();break; case '5':exit(0);break;default:menu();break;} } seerecord(){ printf(“最高紀錄為%s,%d”,first[N],max);} C語言程序設(shè)計課程設(shè)計 設(shè)計題目:專業(yè):計算機科學(xué)與技術(shù)班級:2010級計算機二班組長姓名:馬得才【P101712944】成員姓名:孫麗欣【P101712927】 趙廣峰【P101712926】 遲成凱【P101712928】 冶成意【P101712930】 2010年5月20日 題目: 指導(dǎo)教師:普措才仁 一、案例需求 二、案例分析 三、案例設(shè)計 四、案例實現(xiàn) 五、參考文獻 #include int num1; char name1[20]; int score; int nelepeo;//課程已選人數(shù) int Melepeo;//課程人數(shù)上限 struct couse * next;}; int student(); //學(xué)生登陸 int teacher(); //教師登陸 struct student//學(xué)生信息結(jié)構(gòu)體 { int num2; char name2[20]; int nelenum[50];//已選課程編號 int nelen;//已選課程數(shù)量 struct student * next;}; void Ms(){ for(kk1=0;kk1<1100;kk1++) for(kk2=0;kk2<1200;kk2++) for(kk3=0;kk3<1200;kk3++);} void keyboardc()//錄入課程子函數(shù)(從鍵盤錄入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n課程編號:”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt輸入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){ N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct couse *)malloc(sizeof(struct couse)); printf(“n-----------------------------”); printf(“n課程編號:(輸入0結(jié)束)”);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo); p1->nelepeo=0; printf(“ntttt輸入成功!”);} p2->next=NULL;intoc();} void filec()//錄入鍵盤子函數(shù)(從文件錄入){ void intoc(); FILE * fp; char filepath[20]; struct couse *p1,*p2; N1=0; printf(“輸入要讀入的文件路徑:”); getchar(); gets(filepath); if((fp=fopen(filepath,“r”))==NULL) { printf(“找不到%s文件!n”,filepath); exit(0); } p1=p2=(struct couse*)malloc(sizeof(struct couse)); fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo); head1=NULL; while(!feof(fp)) { N1=N1+1; if(N1==1)head1=p1; else p2->next=p1; p2=p1; p1=(struct couse *)malloc(sizeof(struct couse)); fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo); } p2->next=NULL; intoc();} void inputc()//錄入課程主函數(shù) { int i; printf(“ttt錄入課程信息n”); printf(“n1.從鍵盤錄入n”); printf(“2.從文件錄入n”); printf(“3.返回主菜單n”); printf(“請選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):keyboardc();break; case(2):filec();break; case(3):system(“cls”);return;break; //return } } void insertc(struct couse *incouse)//課程管理子函數(shù)(增加課程){ void intoc(); struct couse *p0,*p1,*p2; p1=head1; p0=incouse; if(head1==NULL) { head1=p0; p0->next=NULL; } else { while((p0->num1 > p1->num1)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num1 <= p1->num1) { if(head1==p1)head1=p0; else p2->next=p0; p0->next=p1; } else { p1->next=p0; p0->next=NULL; } } N1=N1+1; intoc();} void delc(int num1)//課程管理子函數(shù)(刪除課程){ void intoc(); struct couse *p1,*p2; if(head1==NULL) { printf(“n沒有課程,無法刪除!n”); goto end; } p1=head1; while(num1!=p1->num1 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num1==p1->num1) { if(p1==head1)head1=p1->next; else p2->next=p1->next; printf(“已刪除該編號課程!n”); N1=N1-1; } else printf(“無該編號的課程!n”); end:; intoc();} void managementc()//課程管理主函數(shù) { struct couse * incouse; struct couse *p1; int i,num1; printf(“ttt課程管理n”); printf(“1.新增課程n”); printf(“2.刪除課程n”); printf(“3.返回主菜單n”); printf(“請選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1): { incouse=(struct couse *)malloc(sizeof(struct couse)); printf(“n課程編號:”); fflush(stdin); scanf(“%d”,&p1->num1); printf(“n課程名稱:”); scanf(“%s”,p1->name1); printf(“n學(xué)分:”); scanf(“%d”,&p1->score); printf(“n課程人數(shù)上限:”); scanf(“%d” ,&p1->Melepeo); printf(“ntttt輸入成功!”); incouse->nelepeo=0; insertc(incouse); break; } case(2): { printf(“請輸入要刪除課程的編號:n”); scanf(“%d”,&num1); delc(num1); break; } case(3):system(“cls”);return;break; } } void keyboards()//錄入學(xué)生信息子函數(shù)(從鍵盤錄入){ void intos(); int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student)); printf(“n學(xué)生學(xué)號:”); scanf(“%d”,&p1->num2); printf(“n學(xué)生姓名:”); scanf(“%s”,p1->name2); p1->nelen=0; for(i=0;i<50;i++)p1->nelenum[i]=0; head3=NULL; while(p1->num2!=0) { N2=N2+1; if(N2==1)head3=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(sizeof(struct student)); //return printf(“n學(xué)生學(xué)號:(輸入0結(jié)束?。?; scanf(“%d”,&p1->num2); printf(“n學(xué)生姓名:”); scanf(“%s”,p1->name2); p1->nelen=0; for(i=0;i<50;i++)p1->nelenum[i]=0; } p2->next=NULL; intos();return;} void files()//錄入學(xué)生信息子函數(shù)(從文件錄入){ int i=0; FILE * fp; char filepath[20]; struct student *p1,*p2; N2=0; printf(“輸入要讀入的文件路徑:”); getchar(); gets(filepath); if((fp=fopen(filepath,“r”))==NULL) { printf(“找不到%s文件!n”,filepath); exit(0); } p1=p2=(struct student*)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); head3=NULL; while(!feof(fp)) { i=0; N2=N2+1; if(N2==1)head3=p1; else p2->next=p1; p2=p1; p1=(struct student *)malloc(sizeof(struct student)); fread(p1,sizeof(struct student),1,fp); } p2->next=NULL;} void inputs()//錄入學(xué)生信息主函數(shù) { int i; printf(“nttt錄入學(xué)生信息n”); printf(“n1.從鍵盤錄入n”); printf(“2.從文件錄入n”); printf(“3.返回主菜單n”); printf(“請選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):keyboards();break; case(2):files();break; case(3):system(“cls”);return;break; } return 0;} void inserts(struct student * incouse)//學(xué)生信息管理子函數(shù)(填加學(xué)生信息){ void intos(); struct student *p0,*p1,*p2; p1=head3; p0=incouse; if(head3==NULL) { head3=p0; p0->next=NULL; } else { while((p0->num2 > p1->num2)&&(p1->next!=NULL)) { p2=p1; p1=p1->next; } if(p0->num2 <= p1->num2) { if(head3==p1)head3=p0; else p2->next=p0; p0->next=p1; } else { //return p1->next=p0; p0->next=NULL; } } N2=N2+1; intos();} void dels(int num2)//學(xué)生信息管理子函數(shù)(刪除學(xué)生信息){ void intos(); struct student *p1,*p2; if(head3==NULL) { printf(“n沒有該學(xué)生信息,無法刪除!n”); goto end; } p1=head3; while(num2!=p1->num2 && p1->next!=NULL) { p2=p1; p1=p1->next; } if(num2==p1->num2) { if(p1==head3)head3=p1->next; else p2->next=p1->next; printf(“已刪除該學(xué)生信息!n”); N2=N2-1; } else printf(“無該學(xué)號的學(xué)生!n”); intos(); end:;} void managements()//學(xué)生信息管理主函數(shù) { struct student * incouse; int i,num2; printf(“ttt學(xué)生信息管理n”); printf(“1.新增學(xué)生信息n”); printf(“2.刪除學(xué)生信息n”); printf(“3.返回主菜單n”); printf(“請選擇(1~3):n”); scanf(“%d”,&i); switch(i) { case(1): { incouse=(struct student *)malloc(sizeof(struct student)); incouse->nelen=0; incouse->nelenum[0]=0; printf(“學(xué)生學(xué)號t學(xué)生姓名n”); scanf(“%d%s”,&incouse->num2,incouse->name2); inserts(incouse); break; } case(2): { printf(“請輸入要刪除學(xué)生的學(xué)號:n”); scanf(“%d”,&num2); dels(num2); break; } case(3):system(“cls”);return;break; //return } } void elect(struct student * s)//選課 { void intos(); struct couse * p; int num1,i; printf(“請輸入要選課的編號:n”); scanf(“%d”,&num1); for(i=0;s->nelenum[i]!=0;i++); s->nelenum[i]=num1; (s->nelen)++; p=head1; while(p->num1!=num1)p=p->next; (p->nelepeo)++; intos();} void cheak()//學(xué)生選課子函數(shù)(查詢可選課程){ char e; struct couse * c; struct student * s; int num2,i,j=0,t=0; printf(“請輸入你的學(xué)號:”); scanf(“%d”,&num2); s=head3; while((s->num2!=num2)&&(s->next!=NULL))s=s->next; if(s->num2!=num2) { printf(“不存在你的信息,請進入主菜單錄入你的信息!n”); goto end; } c=head1; printf(“你的可選課程編號:n”); while(c!=NULL) { for(t=0,i=0;s->nelenum[i]!=0;i++) { if(c->num1==s->nelenum[i])t=1; } if(t==0 &&(c->nelepeo!=c->Melepeo)) { printf(“%dn”,c->num1); j++; } c=c->next; } if(j==0) { printf(“你已選完所有課程,無法再多選!n”); goto end; } printf(“選課(y/n)?:n”); getchar(); e=getchar(); i=0; while((e=='y')||(e=='Y')) { elect(s); printf(“繼續(xù)選課(y/n)?:n”); getchar(); e=getchar(); } end:;} void back(struct student * p)//退課 { void intos(); struct couse * p1; int num1,i,j; printf(“請輸入你要退掉的課程編號:n”); scanf(“%d”,&num1); p1=head1; while(p1->num1!=num1)p1=p1->next; for(i=0;p->nelenum[i]!=num1;i++); for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1]; p->nelenum[--j]=0; (p1->nelepeo)--; printf(“退課成功!n”); intos();} void hcheak()//學(xué)生選課子函數(shù)(查詢已選課程){ char c; struct couse * p0; struct student * p; int num2,i,f=0; printf(“請輸入學(xué)號:n”); scanf(“%d”,&num2); p=head3; while(p->num2!=num2 && p!=NULL)p=p->next; if(p==NULL) { printf(“不存在你的信息,請回主菜單錄入信息:n”); goto end; } printf(“已選課程編號:n”); if(p->nelenum[0]==0) { printf(“你還沒選課!n”); goto end; } for(i=0;p->nelenum[i]!=0;i++) { printf(“%dn”,p->nelenum[i]); p0=head1; while(p0->num1!=p->nelenum[i])p0=p0->next; f=f+p0->score; } printf(“總學(xué)分:%dn”,f); printf(“是否進行退課(y/n)?”); getchar(); c=getchar(); while((c=='y')||(c=='Y')) { back(p); printf(“繼續(xù)退課(y/n)?”); getchar(); c=getchar(); (p->nelen)--; } end:;} void elective()//學(xué)生選課主函數(shù) { int i; printf(“ttt學(xué)生選課n”); printf(“1.查詢可選課程n”); printf(“2.查詢已選課程n”); printf(“3.返回主菜單n”); printf(“請輸入(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):cheak();break; case(2):hcheak();break; case(3): system(“cls”);return;break; // return } } void listc()//輸出課程信息 { struct couse * p; p=head1; printf(“課程編號 課程名稱 學(xué)分 課程已選人數(shù) 課程人數(shù)上限n”); while(p!=NULL) { printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; } } void lists()//輸出學(xué)生信息 { struct student * p; p=head3; printf(“學(xué)生學(xué)號 學(xué)生姓名 已選課程數(shù)量n”); while(p!=NULL) { printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen); p=p->next; } } void intoc()//存儲課程信息 { FILE * fp; struct couse * p; char filepath[30]; if((fp=fopen(“課程信息.dat”,“a+”))==NULL) { printf(“n保存失敗!”); exit(0); } p=head1; while(p!=NULL) { fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; } fclose(fp); printf(“課程信息已保存成功!n”);} void intos()//存儲學(xué)生信息 { int i; FILE * fp; struct student * p; char filepath[30]; if((fp=fopen(“學(xué)生信息.dat”,“a+”))==NULL) { printf(“n保存失敗!”); exit(0); } p=head3; while(p!=NULL) { fwrite(p,sizeof(struct student),1,fp); p=p->next; } fclose(fp); printf(“學(xué)生信息已保存成功!n”); printf(“ntttt選擇菜單:”); printf(“ntttt1.繼續(xù)添加ntttt2.返回主菜單:”); printf(“請選擇:”); scanf(“%d”,&i); switch(i) { case 1:inputs();break; case 2:teacher();break; default:printf(“n輸入有誤!n”);} } void store()//信息主函數(shù) { int i; printf(“tt系統(tǒng)信息查看及存儲n”); printf(“1.查看課程信息n”); printf(“2.查看學(xué)生信息n”); printf(“3.返回主菜單n”); printf(“請輸入(1~3):n”); scanf(“%d”,&i); switch(i) { case(1):listc();break; case(2):lists();break; case(3):system(“cls”);return;break; } } int main()//主函數(shù) //retuen { int i; FILE *fp; printf(“nttt歡迎使用學(xué)生選課系統(tǒng)!n”); printf(“n請選擇菜單:”); printf(“ntttt1.教師登陸ntttt2.學(xué)生登陸n”); printf(“請選擇:”); scanf(“%d”,&i); switch(i) { case 1:teacher();break; case 2:student();break; default:printf(“輸入有誤!”); } } int student() { int i; printf(“ntttt1.學(xué)生選課n”); printf(“ntttt2.系統(tǒng)信息查看及存儲n”); printf(“ntttt3.退出系統(tǒng)n”); printf(“請選擇:”); scanf(“%d”,&i); switch(i) { case 1: { system(“cls”); elective(); break; } case 2: { system(“cls”); store(); break; } default:printf(“輸入有誤!”); } } int teacher() { FILE *fp; int i; printf(“菜單:n”); printf(“1.錄入課程信息n”); printf(“2.課程管理n”); printf(“3.錄入學(xué)生信息n”); printf(“4.學(xué)生信息管理n”); printf(“5.系統(tǒng)信息查看n”); printf(“6.退出系統(tǒng)n”); if((fp=fopen(“課程信息.dat”,“rb”))==NULL) { printf(“n打開系統(tǒng)文件失??! n”); //fp=fopen(“信息.dat”,“rb”)); // } // if(feof(fp)) // { printf(“n還未添加課程信息,請?zhí)砑诱n程信息!n”); inputc(); } while(!feof(fp)) { emp1=(struct couse*)malloc(sizeof(struct couse)); if(emp1==NULL) { printf(“n分配內(nèi)存失?。”); return; } fread(emp1,sizeof(struct couse),1,fp); if(feof(fp))break; if(head1==NULL) { head1=emp1; head2=emp1; } else{ head2->next=emp1; head2=emp1; } head2->next=NULL; } fclose(fp); fp==NULL; if((fp=fopen(“學(xué)生信息.dat”,“rb”))==NULL) printf(“n打開系統(tǒng)文件失??!n”); // //if(feof(fp)==1) // { printf(“還未添加學(xué)生信息,請?zhí)砑訉W(xué)生信息!”); inputs(); while(!feof(fp)) { emp1=(struct student*)malloc(sizeof(struct student)); if(emp2==NULL) { printf(“n分配內(nèi)存失??!n”); return; } fread(emp2,sizeof(struct student),1,fp); if(feof(fp))break; if(head3==NULL) { head3=emp2; head4=emp2; } else{ head4->next=emp2; head4=emp2; } head4->next=NULL; } fclose(fp); fp==NULL; printf(“n請輸入菜單選項(1~6):n”); scanf(“%d”,&i); switch(i) { case(1): { system(“cls”); inputc(); break; } case(2): { system(“cls”); managementc(); break; } case(3): { system(“cls”); inputs(); break; } case(4): { system(“cls”); managements(); break; } case(5): { system(“cls”); store(); break; } case(6): { system(“cls”); printf(“感謝使用本系統(tǒng)!nn再見!n”); } } return 1; } 1,/*100-999內(nèi)的水仙花數(shù)的個數(shù)*/ #include int a,b,c,d,s,i=0; for(a=100;a<=999;a++) { b=a/100; c=a%100/10; d=a%10; s=b*b*b+c*c*c+d*d*d; if(a==s) i++; } printf(“%d”,i); getch();} 2, /*x^2+y^2+z^2=55^2,則(x,y,z)稱為方程的整數(shù)解的個數(shù)*/ #include for(y=-55;y<=55;y++) for(z=-55;z<=55;z++) { a= x*x+y*y+z*z; s=55*55; if(a==s&&x>y&&x>z&&x>y) t++; } printf(“%d”,t); getch(); } 3/*100-400內(nèi)的水仙花數(shù)的個數(shù)*/ #include int a,b,c,d,s,i=0; for(a=100;a<=400;a++) { b=a/100; c=a%100/10; d=a%10; s=b*b*b+c*c*c+d*d*d; if(a==s) i++; } printf(“%d”,i); getch(); } 4, /* 0-60內(nèi)每位數(shù)的乘積大于和的數(shù)個數(shù)*/ #include int a,b,c,d,e,i=0; for(a=0;a<=6;a++) { b=a/10;c=a%10; d=a*b;e=a+b; if(d==e) i++; } printf(“%d”,i); getch(); } 5/*滿足1/A^2+1/B^2=1/C^2關(guān)系時,稱為倒勾股數(shù) */ #include int a,b,c ,t=0; float x,y,z; for(a=1;a<=100;a++) { for(b=1;b<=100;b++) for(c=1;c<=100;c++) x=1/(a*a); y=1/(b*b); z=1/(c*c); if(x+y==z&&a+b+c<150&&a+b+c>130&&a>b&&a>c&&b>c) t++; } printf(“%d”,t); getch(); } 6, /*愛因斯坦走臺階 */ #include int s; for(s=0;;s++) { if(s%2==1&&s%3==2&&s/4==3&&s/5==4&&s/6==5&&s%7==0)break; } printf(“%d”,s); getch(); } 7./*121-140內(nèi)弦數(shù)的個數(shù)*/ #include int a=0,b=0,c=121 ,i=0; for(c=121;c<=140;a++) { for(a=0;a<=15;a++) for(b=0;b<=15;b++) if(c*c==a*a+b*b) i++; continue; printf(“%d”,i); } getch();} 8/*1000內(nèi)其十位數(shù)是6能被8整除數(shù)的個數(shù)*/ #include int a,i=0; for(a=10;a<=1000;a++) { if(a%100/10==6&&a%8==0) i++; } printf(“%d”,i); getch(); } 9/* 0-60內(nèi)每位數(shù)的乘積大于和的數(shù)個數(shù)*/ #include int a,b,c,d,e,i=0; for(a=0;a<=60;a++) { b=a/10;c=a%10; d=c*b;e=c+b; if(d>e) i++; } printf(“%d”,i); getch(); } 10./* 1-5000內(nèi)能被5整除偶數(shù)之和大于500和的值*/ #include int a, b=0; for(a=2;a<=5000;a+=2) { if(a%5==0) b=b+a; while(b>500); printf(“%d”,b); } getch(); } 11./* 100-500內(nèi)能被3整除余2和能被5整除余3的個數(shù)*/ #include int a, b=0; for(a=100;a<=500;a++) { if(a%3==2&&a%5==3) b++; } printf(“%d”,b); getch(); } 12/* 1-7000內(nèi)能被3或者能被7整除的個數(shù)*/ #include int a, b=0; for(a=1;a<=7000;a++) { if(a%3==0||a%7==0) b++; } printf(“%d”,b); getch(); } 13./*3-100內(nèi)非偶數(shù)非素數(shù)之和*/ #include int a,i,k, b=0; for(a=3;a<=100;a+=2) { k=sqrt(a); for(i=2;i<=k;i++) {if(a%i==0)break; if(i>k+1) b=b+a;} } printf(“%d”,b); getch(); } 14/*求滿足ijk+kji=1534,且i #include int j,i,k, b=0; for(j=0;j<=9;j++) for(k=0;k<=9;k++) for(i=0;i if(100*i+10*j+k+100*k+10*j+i==1534) b++; printf(“%d”,b); getch(); } 15/*有四位數(shù)ABCD的個數(shù),該四位數(shù)是11的倍數(shù),且A=B+C,即第2位數(shù)加上第3位數(shù)等于第1位數(shù)。4 */ #include int j,i,k,a, b=0; for(j=1000;j<=9999;j++) { i= j/1000; k=j%1000/100; a=j%100/10; if(j%11==0&&i==k+a) b++; } printf(“%d”,b); getch(); } 16/*求三位數(shù)的偶數(shù)中,所有各位數(shù)字之和是15的倍數(shù)的數(shù)的個數(shù)*/ #include int j,i,k,a,s, b=0;for(j=100;j<=999;j+=2) { i= j/100; k=j%100 /10; a=j%10; s=i+k+a; if(s%15==0) b++; } printf(“%d”,b); getch(); } 17/*四位數(shù)的奇數(shù)中,所有各位數(shù)字之積是125的倍數(shù)的數(shù)的和*/ #include int j,i,k,a,c,s, b=0;for(j=1111;j<=9999;j+=2) { i= j/1000; k=j%1000 /100; a=j%100/10; c=j%10; s=i*k*a*c; if(s%125==0) b=b+j; } printf(“%d”,b); getch(); } 18/*5000以內(nèi)能被17或者23整除的正整數(shù)的個數(shù) */ #include int j,i,k,a,c,s, b=0;for(j=1;j<=5000;j++) { if(j%17==0||j%23==0) b++; } printf(“%d”,b); getch(); } 19/*四位數(shù)的偶數(shù)中,所有各位數(shù)字之和是30的倍數(shù)的數(shù)的和 */ #include int j,i,k,a,c,s, b=0;for(j=1000;j<=9999;j+=2) { i=j/1000; k=j%1000/100; a=j%100/10; c=j/10; s=i+k+a+c; if(s%30==0) b=b+j; } printf(“%d”,b); getch(); } 21/*統(tǒng)計1000~9999之間的所有滿足以下條件的四位數(shù)的個數(shù)。該數(shù)是一個完全平方數(shù)*/ #include int a,b,c ,d,s,x,y,t=0; for(s=1000;s<=9999;s++) { a=s/1000; b=s%1000/100; c=s%100/10; d=s%10; x=sqrt(s); y=x*x; if(a+b==12&&c*d==24&&y==s) t++; } printf(“%d”,t); getch(); } 22/*S=1+3+5+7+9+…,求S不大于9000的最大值*/ #include int j ,s=0;for(j=1;;j+=2) { s+=j;if(s>9000)break; } s=s-j; printf(“%d”,s); getch(); } 23/*S=2+4+8+16+32+…,求S不大于1500的最大值*/ #include int j ,s=0;for(j=2;;j=2*j) { s+=j; if(s>1500)break; } s=s-j; printf(“%d”,s); getch(); } /*m的值為50時,計算下列公式的值T=1-1/2-1/3-1/4-…-1/m*/ #include float n,m,s,T; s=0; for(n=2;n<=50;n++){ m=-1/n; s=s+m; } T=1+s; printf(“%0.4f”,T); getch(); } 26, /*當(dāng)n的值為25時,計算下列公式的值: s=1+1/1!+1/2!+1/3!+…+1/n*/ #include float s,T; int m=1,n=1; s=0; for(n=1;n<=25;n++){ m=m*n; s=s+1/m; } T=1+s; printf(“%0.4f”,T); getch(); } 27/*斐波那契數(shù)列,10000000以內(nèi)最大的斐波那契數(shù)*/ #include do { f1=f1+f2; f2=f1+f2; }while(f1>10000000); printf(“%ldn%ld”,f1,f2); getch(); } 28/*計算y=1+2/3+3/5+4/7+.....+n/(2*n-1)的值,n=50*/ #include t=2*n-1; m=1.0/t; s=m*n; y+=s; } printf(“%.2f”,y); getch(); } 29/*計算y=x/1!-x^3/3!+x^5/5!-x^7/7!...前20項的值x=2*/ #include float y=0,m,s,x;int t,n; for(n=1;n<=20;n++){ x=-4*x; m=2*n+1; t=t*m*(m-1); s+= x/t; } printf(“%.2f”,y); getch(); } 30/*梅森尼數(shù)2^n-1是素數(shù),【2-21】內(nèi)的梅森尼數(shù)個數(shù) */ #include main(){ int n,m,i,j,k,x=0;for(n=2;n<=21;n++){ m=2*m; i=m-1; k=sqrt(i); for(j=3;j<=k;j++) if(i%k==0)break;if(j>=k+1)x++; } printf(“%d”,x); getch(); } 31/*兩位數(shù)分子分母各個數(shù)之和的比等于原來的值*/ #include main(){ int n,m,a,b,c,d,s;float x,y;for(n=10;n<=98;n++)for(m=11;m<=99;m++) { a=n/10; b=n%10; c=m/10; d=m%10; x=n/m; y=(a+b)/(c+d); if(m>n&&x==y) s+=a+b+c+d; } printf(“%d”,s); getch(); } 32/* 1-50內(nèi)構(gòu)成直角三角形的組數(shù) */ #include main(){ int x,y,z,n=0,t; for(x=1;x<=50;x++) { for(y=1;y<=50;y++) for(z=1;z<=50;z++) if(x+y>z&&x*x+y*y==z*z) n++;} t=n/3; printf(“%d ”,t); getch(); } 33/*一正整數(shù)遞減,每次減半后減一,10次后剩一 */ #include main(){ int n, s=0,m=1; for(n=2;n<=10;n++) { m= 2*(m+1); } printf(“%dn”,m); getch(); } 34./* 2/1,3/2,5/3,.....前50項和*/ #include main(){ int x1=1,x2=2, n;float t,s=0; for(n=1;n<=50;n++) { t=x2/x1; s+=t; x2=x1+x2; x1=x2; } printf(“%.2f ”,s); getch(); } 35,/*求五位數(shù)各個位數(shù)平方和為100的最大五位數(shù)*/ #include main(){ int x,a,b,c,d,e,m,n,max; for(x=10000;x<=99999;x++) { a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10; m=a*a+b*b+c*c+d*d+e*e; if(m==100)break; max=x; } for(n=x;n<=99999;n++) { a=n/10000; b=n%10000/1000; c=n%1000/100; d=n%100/10; e=n%10; m=a*a+b*b+c*c+d*d+e*e; if(m==100) max=n; } printf(“%ld ”,max); getch(); } 36,#include long int y,k; int x,i=0; for(x=2;x<=1000;x++) { y=x*x; k=y-x; if(x<10&&k%10==0) i=i+x; if(x>=10&&x<=99&&k%100==0) i=i+x; if(x>=100&&x<=999&&k%1000==0) i=i+x; if(x==1000&&k%10000) i=i+x; } printf(“%d”,i); getch();} 37/*求50-150之間的友對數(shù)*/ #include y=x+1; z=x*y-1; for(i=2;x<=z-1;i++) { if(z%i==0)break; if(z%i!=0) { if(i==z-1) t++;} } } printf(“%d”,t); getch(); } 38/* 求[1,30000]之內(nèi)E數(shù)的個數(shù),E(1)=E(2)=1;E(n)=(n-1)*E(n-1)+(n-2)*E(n-2)*/ #include int i,j=2,n; long int a[]={0,1,1}; for(n=3;;n++) { a[n]=(n-1)*a[n-1]+(n-2)*a[n-2]; for(i=1;i<=30000;i++) { if(a[n]==i) {j++;break;} if(a[n]>=30000) break; } if(a[n]>=30000) break; } printf(“%d”,j); getch();} 39./*試求所有兩位絕對素數(shù)的和,絕對素數(shù)是交換位子后仍為素數(shù)*/ #include int i,j,a,b,x,k,s=0; for(i=11;i<=99;i+=2) for(j=2;j<=i-1;j++) {if(i%j==0) break; if(i%j!=0) {if(j==i-1) {a=i/10; b=i%10; x=10*b+a; for(k=2;k<=x-1;k++) {if(x%k==0) break; if(x%k!=0) {if(k==x-1) s=s+i;}} } } } printf(“%d”,s); getch();} 40./*f(0)=f(1)=1,f(2)=0f(n)=f(n-1)-2*f(n-2)+f(n-3),(n>2)求f(0)到f(50)中的最大值*/ #include long int a[50]={1,1,0},max; int i; for(i=3;i<=50;i++) { max=a[1]; a[i]=a[i-1]-2*a[i-2]+a[i-3];第三篇:C語言課程設(shè)計范文
第四篇:C語言課程設(shè)計
第五篇:CC語言課程設(shè)計