設計報告
一,
實驗目得:
通過上機實習, , 熟練掌握循環語句、選擇語句、指針以及結構體得運用技巧。在實習中通過實際操作, , 編寫程序, , 發現問題,最后解決問題, ,對 提升對 c c 語言實用性得理解, , 在實踐中鞏固各知識點。
C C 語言就是一種計算機程序設計語言。它既具有高級語言得特點, , 又具有匯編語言得特點, ,上機實習可以幫助我們更好地理解這種結構式得中級語言以及其各式各樣得數據類型與高效率得運算程序,為我們進一步學習C ++ 打下堅實基礎。
同時, , 在實習過程中,通過互相發現問題,共同解決問題, , 不僅鍛煉了我們得合作能力 ,而且也讓我們發現了一些自己得個人誤區以及其她人容易犯得錯誤, , 從而在今后得學習中更加謹慎, , 達到事半功倍得效果; ; 通過詢問老師, , 也讓我們養成了不恥下問得好習慣,這將很有利于以后得學習。
閑樂-一個人閑。不如大家一塊兒樂 二,總體設計:
1,學生成績排名
1 1 ,流程圖: :
?假?
真?
假?
真?
<通過冒泡法對數組進行排序> 〈測試時由于循環語句循環次數得錯誤導致部分數據沒有排序,修改FOR語言中得條件即可調試成功> 2, 程序:
#include〈stdio、h> int main()
{ ,]11[a 組數個一義定//
;3pmet,2pmet,1pmet,c,b,t,j,i,]11[a tni?用以存放學生得成績
printf("從鍵盤輸入10 個學生成績:\n");
)++i;01<i;0=i(rof? ? scanf("%d”,&a[i]);
//輸入10 個學生成績
for(i=0;i<9;i++)
? for(j=0;j〈9—i;j++)
?)]1+j[a<]j[a(fi?
? {t=a[j];a[j]=a[j+1];a[j+1]=t;}
//采用冒泡法,將學生成績按照從高到低進行排序
printf("10 個學生成績數組:\n");
for(i=0;i〈10;i++)
printf("%5d”,a[i]);
printf(”\n");
;)"n\績成得生學個一入輸再"(ftnirp?
scanf("%d",&b);
//再輸入一個學生得成績
;]9[a=c? if(b<c)
//將此成績按照排序規律插入原學生成績數組
;b=]01[a?? else
{for(i=0;i<10;i++)
I=0 I<11?賦值 I 由 0 變到 8 執行 9 次循環
進行 9-I 次比較
真
a[j]>a[I+I]假
a[j]
a[j+1] 輸出 a[0]到 a[9] 再輸入一個學生得成績 冒泡法排序 輸出 a[0]到 a[10] I 由 0 變到 4 進行 5 次循環 a[i]
a[10-i] I=0 I<10?輸出 結束
{if(a[i]〈b)
{
;b=]i[a;]i[a=1pmet?
)++j;11〈j;1+i=j(rof?
{temp2=a[j];a[j]=temp1;temp1=temp2;
}break;
}? }? }
printf(”11 個學生成績數組:\n”);
//輸入 11 個學生成績
for(i=0;i<11;i++)
;)]i[a,"d5%"(ftnirp?
printf("\n”);
for(i=0;i〈5;i++)
//排好序得成績單進行反序存放
{
;]i[a=3pmet??
;]i—01[a=]i[a? ;3pmet=]i—01[a?? }
printf(”排好序得成績單進行反序存放為:\n");
for(i=0;i<11;i++)
//輸出反序存放后得學生成績數組
;)]i[a,"d5%"(ftnirp?
printf(”\n");
return 0; } 3, 運行結果:
2,根據條件進行學生成績排名 1, 流程圖: Sort1
sort2
?假?
真?
賦值 I 由 0 變到 8 執行 9 次循環
進行 9-I 次比較
真
a[j]>a[I+I]假
a[j]
a[j+1] 輸出 a[0]到 a[9] I<10?I=0,i++ 輸入 n I=0,i++ 賦值 I 由 0 變到 n-1 執行 n 次循環
進行 n-1-I 次比較
真
a[j]>a[I+I]假
a[j]
a[j+1] 輸出 a[0]到 a[n-1] I<n
Sort3
假? ?
假? 真?
?真?
2 ,程序:
#include〈stdio、h〉 void sort1(int a[10])
//定義函數 {
int i,j,t;
;)"n\:績成生學個01入輸"(ftnirp?
for(i=0;i<10;i++)
scanf(”%d”,&a[i]);
//輸入 n 個學生成績
for(i=0;i 〈10;i++)
//冒泡法對n個數字排序
for(j=0;j<9-i;j++)
?? if(a[j]〈a[j+1])
?? {t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("10 個學生成績從高到低排名就是:\n");
for(i=0;i〈10;i++)
//輸出結果
;)]i[a,”d5%"(ftnirp? ;)”n\”(ftnirp? } void sort2(int a[],int n)
//定義函數 {
int i,j,t;
printf(”請輸入學生個數 n:\n");
scanf("%d",&n);
printf("輸入 n 個學生成績:\n");
for(i=0;i<n;i++)
;)]i[a&,"d%"(fnacs??
for(i=0;i<n;i++)
//冒泡法對 n 個數字排序 I<n 輸入 n I=0,i++ 賦值 輸入 a or d I 由 0 變到 n-1 執行 n 次循環
進行 n-1-I 次比較
真
a[j]>a[I+I]假
a[j]
a[j+1] Style=97 Style=100 I 由 0 變到 n-1 執行 n 次循環
進行 n-1-I 次比較
真
a[j]<a[I+I]假
a[j]
a[j+1] 輸出 a[0]到 a[n-1]
)++j;1-i-n〈j;0=j(rof?
)]1+j[a<]j[a(fi??
? {t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("n 個學生成績從高到低排名就是:\n”);
for(i=0;i<n;i++)
//輸出結果
printf(”%5d",a[i]);
printf(”\n"); } void sort3(int a[],int n, char style) {
char c; getchar(c);
printf(”請輸入 style 類型:a or d\n");
;)(rahcteg=elyts? printf("請輸入學生個數n:\n");
scanf("%d”,&n);
;)"n\:績成生學個 n 入輸"(ftnirp?
int i,j,t;
for(i=0;i〈n;i++)
? scanf("%d",&a[i]);
)79==elyts(fi? {
printf("對 n 個數字升序排列為:\n”);
數個n對法泡冒//
)++i;n〈i;0=i(rof?字升序排列
)++j;1—i-n〈j;0=j(rof?? ?
if(a[j]〉a[j+1])
{? };t=]1+j[a;]1+j[a=]j[a;]j[a=t? }?
else if(style==100)
{
printf(”對 n 個數字降序排列為:\n”); 數個 n 對法泡冒//
)++i;n<i;0=i(rof??字降序排列
for(j=0;j〈n-i-1;j++)
)]1+j[a<]j[a(fi?
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}? printf("n 個學生成績排名就是:\n”);
for(i=0;i<n;i++)
//輸出結果
printf("%5d”,a[i]);
;)"n\”(ftnirp?} int main()
//主函數 {
{printf(”sort1:\n”);
//調用sort1 函數
int a[10];
};)a(1tros?{函 2tros 用調//
;)"n\:2tros"(ftnirp?數
int a[30000],n;
};)n,a(2tros?{
數函 3tros 用調//
;)”n\:3tros"(ftnirp? int a[30000],n;
;elyts rahc? sort3(a,n,style);}
;0 nruter?} <這個程序中輸入字符時由于前面得程序得干擾,第一個輸入字符語句會直接跳過,所以要另加一個空白得輸入字符得語言,從而使程序中輸入字符得語句能夠正常運行〉 <由于數組得長度必須要定義,而且不能用變量定義,鑒于要進行比較得數據量n就是一個整形得數,定義數組為一個較長數組即可> 3 ,運行結果:
3,用指針優化學生成績排名 1 , 流程圖:
So rt
copy
main
2, 程序:
#include<stdio、h> #include<string、h> v o id s o r t ( i n t
* p )
//定義函數 sort {
//將成績數組按照從高到低進行排序,要求用函數實現
int i,j,t;
for(i=0;i<9;i++)
)++j;i-9<j;0=j(rof?? ?
))1+j+p(*〈)j+p(*(fi?
{ };t=)1+j+p(*;)1+j+p(*=)j+p(*;)j+p(*=t?} v o i d
c opy(c h ar
* a,cha r
*b )
//定義函數copy
{
for(;*a!=’\0’;a++,b++)
// 復制該字符串,用函數實現
{ *b=*a;} * ;’0\’=b?} int main()
{ 義定 //
;p*,]01[uts,t,j,i tni?一個數組 stu[10]存放 10 個學生得成績
p=stu;
;)”n\:據數個 01 入輸請”(ftnirp?鍵從//
)++i;01<i;0=i(rof?盤輸入數據,用指針實現
? scanf("%d",p+i);
printf("數組stu[10]得內容為:\n"); 將//
)++i;01<i;0=i(rof?數組stu[10]得內容輸出到屏幕上,用指針實現
? printf("%5d",*(p+i));
printf(”\n”); 成將//
)++i;9<i;0=i(rof?績數組按照從高到低進行排序,用指針實現
for(j=0;j<9—i;j++)
if(*(p+j)<*(p+j+1))
{?};t=)1+j+p(*;)1+j+p(*=)j+p(*;)j+p(*=t? printf(”成績數組按照從高到低進行排序為:\n");
p=stu;
for(i=0;i〈10;i++)
printf("%5d",*(p+i));
;)”n\"(ftnirp? ;uts=p? sort(p);
//調用函數 sort
;)”n\:為現實中數函在放容內步三第"(ftnirp?
for(i=0;i〈10;i++)
printf(”%5d",*(p+i));
;)"n\”(ftnirp? printf(”采用指針方法,輸入字符串 student score: \n");
char *a=”student score”;
char b[14]; 調//
;)b,a(ypoc?用函數 copy
;)b,”n\s%”(ftnirp? return 0; } <指針得傳遞就是雙向得,在賦值中有多種方法,比如說對數組直接賦值,或者直接對指針變量進行賦值> 〈復制該字符串,用函數實現時就是用循環語句把一個字符串得每一個字符賦值給另一個字符串〉 3 , 運行結果:
4,學生成績單制作 1 , 流程圖:
〈結構體語言具有簡潔,方便,模塊化得特點,在初始化及輸出過程中要注意輸入輸出方式> 〈在輸入字符串得時候,輸入語句中不應有&〉 2 , 程序: #include<stdio、h> St r uctS t u d ent
//定義結構體
{ Return 0
;]01[rebmun rahc?
;]01[eman rahc? 3[erocs tni??
? ];
;egareva taolf? }student[10]; int main()
{
;t,j,i tni?f? o r(i=0;i<10;i + + )
//初始化結構體
{printf(”\n 輸入student%d 成績:\n",i+1);
;)":rebmun"(ftnirp? ;)rebmun、]i[tneduts,"s%”(fnacs?? p ri n tf ( "name:") ;
//存放 10 個學生得學號,姓名,三門課得成績
;)eman、]i[tneduts,"s%"(fnacs? )++j;3<j;0=j(rof? {printf("score %d:",j+1);
;)]j[erocs、]i[tneduts&,"d%”(fnacs? }
student[i]、average=(student[i]、score[0]+student[i]、score[1]+student[i]、score[2])/3、0;
printf("average:%f",student[i]、average);
}
printf("\n");
;)"n\:績成得程課門該及以、名姓、號學得生學得高最績成學數出輸"(ftnirp?//輸出單門課成績最高得學生得學號、姓名、以及該門課程得成績 gareva_xam,0=hsilgne_xam,0=esenihc_xam,0=htam_xam,0=xam tni?e=0,max_i=0;
for(i=0;i<10;i++)
{? )]0[erocs、]i[tneduts<htam_xam(fi?? { ;]0[erocs、]i[tneduts=htam_xam?? };i=i_xam?? }
printf(”number=%s,name=%s,max_math=%d\n",student[max_i]、number,student[max_i]、name,student[max_i]、score[0]);
printf(”輸出中文成績最高得學生得學號、姓名、以及該門課程得成績:\n");
for(i=0;i<10;i++)
{
if(max_chinese〈student[i]、score[1])
?{ ;]1[erocs、]i[tneduts=esenihc_xam? };i=i_xam??
}
printf(”number=%s,name=%s,max_chinese=%d\n",student[max_i]、number,student[max_i]、name,student[max_i]、score[1]);
printf("輸出中文成績最高得學生得學號、姓名、以及該門課程得成績:\n");
for(i=0;i<10;i++)
{
)]2[erocs、]i[tneduts〈hsilgne_xam(fi? { ;]0[erocs、]i[tneduts=hsilgne_xam?
max_i=i;}
}?
printf("number=%s,name=%s,max_english=%d\n”,student[max_i]、number,student[max_i]、name,student[max_i]、score[2]);
printf("輸出三門課程得平均分數最高得學生得學號、姓名及其平均分:\n");
//輸出三門課程得平均分數最高得學生得學號、姓名及其平均分
for(i=0;i〈10;i++)
{
if(max_average〈student[i]、average)
?{ ;egareva、]i[tneduts=egareva_xam?
};i=i_xam? }
printf(”number=%s,name=%s,max_average=%f\n",student[max_i]、number,student[max_i]、name,student[max_i]、average);
for ( i=0 ; i<9; i ++)
//將 10 個學生按照平均分數從高到低進行排序
)++j;i-9<j;0=j(rof?? ?? if(student[j]、average<student[j+1]、average)
{t=student[j]、average;student[j]、average=student[j+1]、average;student[j+1]、average=t;}
printf("
number
name
math
Chinese
English
average\n");
for( i =0;i 〈 10;i+ + )
//輸出排序后得結果
printf("%8s%8s%9d%9d%9d
%6、2f\n",student[i]、number,student[i]、name,student[i]、score[0],student[i]、score[1],student[i]、score[2],student[i]、average);
return 0; 3, 運行結果:
推薦訪問: 實習報告 語言在偉大祖國73華誕之際,我參加了單位組織的“光影鑄魂”主題黨日活動,集中觀看了抗美援朝題材影片《長津湖》,再一次重溫這段悲壯歷史,再一次深刻感悟偉大抗美援朝精神。1950年10月,新中國剛剛成立一年,
根據省局黨組《關于舉辦習近平談治國理政(第四卷)讀書班的通知》要求,我中心通過專題學習、專題研討以及交流分享等形式,系統的對《習近平談治國理政》(第四卷)進行了深入的學習與交流,下面我就來談一談我個人
《習近平談治國理政》(第四卷)是在百年變局和世紀疫情相互疊加的大背景下,對以習近平同志為核心的黨中央治國理政重大戰略部署、重大理論創造、重大思想引領的系統呈現。它生動記錄了新一代黨中央領導集體統籌兩個
《真抓實干做好新發展階段“三農工作”》是《習近平談治國理政》第四卷中的文章,這是習近平總書記在2020年12月28日中央農村工作會議上的集體學習時的講話。文章指出,我常講,領導干部要胸懷黨和國家工作大
在《習近平談治國理政》第四卷中,習近平總書記強調,江山就是人民,人民就是江山,打江山、守江山,守的是人民的心。從嘉興南湖中駛出的小小紅船,到世界上最大的執政黨,在中國共產黨的字典里,“人民”一詞從來都
黨的十八大以來,習近平總書記以馬克思主義戰略家的博大胸襟和深謀遠慮,在治國理政和推動全球治理中牢固樹立戰略意識,在不同場合多次圍繞戰略策略的重要性,戰略和策略的關系,提高戰略思維、堅定戰略自信、強化戰
《習近平談治國理政》第四卷集中展示了以習近平同志為核心的黨中央在百年變局和世紀疫情相互疊加背景下,如何更好地堅持和發展中國特色社會主義而進行的生動實踐與理論探索;對于新時代堅持和發展什么樣的中國特色社
在黨組織的關懷下,我有幸參加了區委組織部組織的入黨積極分子培訓班。為期一周的學習,學習形式多樣,課程內容豐富,各位專家的講解細致精彩,對于我加深對黨的創新理論的認識、對黨的歷史的深入了解、對中共黨員的
《習近平談治國理政》第四卷《共建網上美好精神家園》一文中指出:網絡玩命是新形勢下社會文明的重要內容,是建設網絡強國的重要領域。截至2021年12月,我國網民規模達10 32億,較2020年12月增長4
剛剛召開的中國共產黨第十九屆中央委員會第七次全體會議上討論并通過了黨的十九屆中央委員會向中國共產黨第二十次全國代表大會的報告、黨的十九屆中央紀律檢查委員會向中國共產黨第二十次全國代表大會的工作報告和《