C語言報告之數(shù)組_第1頁
C語言報告之數(shù)組_第2頁
C語言報告之數(shù)組_第3頁
C語言報告之數(shù)組_第4頁
C語言報告之數(shù)組_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗內容輸入一組實數(shù),按要求錄入數(shù)組arr中,采用選擇法對其排序,任意輸入一數(shù),直接在arr數(shù)組中將其按順序插入相應位置。(不許使用其他數(shù)組來完成)#include<stdio.h>#include<stdlib.h>#defineN5//定義符號常量,做到一改全改,用于給N個數(shù)排序voidmain(){ voidhuan(int&,int&);//此處涉及指針相關知識 inti,j,t,k; inta[N+1]; printf("pleaseinputnumbeers:\n"); for(i=1;i<=N;i++) scanf("%d",&a[i]); for(i=1;i<N;i++)//用選擇法給一組數(shù)排序:第一個數(shù)與后面的數(shù)比較,將最小的數(shù)放在第一個位置;然后第二個數(shù) for(j=i+1;j<=N;j++) if(a[i]>a[j]) huan(a[i],a[j]);printf("Thesortednumbers:\n"); for(i=1;i<=N;i++) printf("%5d",a[i]); printf("\nInputanewnumber:"); scanf("%d",&t); if(t>a[N])//插入一個數(shù),并排序 a[N+1]=t; else for(i=1;i<N;i++) if(a[i]>t) { huan(a[i],t); k=i; break; } for(j=k+1;j<=N+1;j++) huan(t,a[j]); printf("Thenewsortednumbers:"); for(i=1;i<=N+1;i++) printf("%5d",a[i]); printf("\n"); system("pause");}voidhuan(int&a,int&b)//此函數(shù)用于交換兩個數(shù)的值,需注意,如無&,則實參值可傳給形參,但形參的值不能傳回給實參{ intc; c=a; a=b; b=c;}//注意:輸入時中文輸入法的空格不同于英文的,將輸入法改英文后再輸入數(shù)據(jù) 編程實現(xiàn)將一行字符中最長的單詞輸出。#include<stdio.h>#include<string.h>#include<stdlib.h>//使用字符處理函數(shù)時用voidmain(){ intalp(char); intlongest(char[]);//函數(shù)聲明部分,不需寫變量名。 inti; charline[100];//定義字符數(shù)組 printf("inputoneline:\n"); gets(line);//字符串輸入函數(shù):將從鍵盤鍵入的函數(shù)送給字符數(shù)組printf("thelongestwordis:"); for(i=longest(line);alp(line[i]);i++) printf("%c",line[i]); printf("\n"); system("pause");}//alp函數(shù)用于判斷當前字符是否為字母intalp(charc){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return(1);//是字母則返回1,否則返回0;以1為真,0為假。 else return(0);}intlongest(charstring[])//longest函數(shù)作用是找出最長單詞的位置,返回值為最長單詞的起始位置.{ intlen=0,lenth=0,place=0,flag=1,point,i;//flag表示單詞是否已經(jīng)開始,flag=1表示單詞開始,0表示未開始 for(i=0;i<=strlen(string);i++) if(alp(string[i])) if(flag) { point=i;//point代表當前單詞的起始位置,place代表最長單詞的起始位置 flag=0; } else len++;//len代表當前單詞已積累的字母個數(shù),lenth代表先前單詞中最長單詞的長度 else { flag=1; if(len>=lenth) { lenth=len; place=point; len=0; } } return(place);}設計程序統(tǒng)計某班三們課程(英語,數(shù)學,計算機)的考試成績。要求能輸入考生人數(shù),并按編號從小到大的順序依次輸入考生的成績,再統(tǒng)計出每門課程的平均分最高分及每個考生的平均分與最高分。#include<stdio.h>voidmain(){ intn,i,j;intA[100][3],max1[3],max2[100];//二維數(shù)組Afloattotal1[3]={0},average1[3],total2[100]={0},average2[100];printf("請輸入考生人數(shù):");scanf("%d",&n);//此處會自動換行for(i=0;i<=n-1;i++)//二維數(shù)組行代表每位學生,3列分別代表英語數(shù)學計算機 { printf("請輸入第%d位考生的成績:\n",i+1);printf("英語:");scanf("%d",&A[i][0]);//此處會自動換行printf("數(shù)學:");scanf("%d",&A[i][1]);printf("計算機:");scanf("%d",&A[i][2]); }for(j=0;j<=2;j++)//此for循環(huán)用于求每門課的最高分及平均分,average1數(shù)組存放每門課均分,max1存放每門課最高分 {for(i=0;i<n;i++) { total1[j]+=A[i][j];//注意total數(shù)組初始化時,需賦初值為0 max1[j]=(max1[j]>A[i][j])?max1[j]:A[i][j]; } average1[j]=total1[j]/n; } for(i=0;i<n;i++)//此for循環(huán)用于求每位考生的最高分及平均分,存放同上 { for(j=0;j<3;j++) { total2[i]+=A[i][j]; max2[i]=(max2[i]>A[i][j])?max2[i]:A[i][j]; } average2[i]=total2[i]/3; } printf("全班英語平均分:%5.2f\t最高分:%d\n",average1[0],max1[0]);printf("全班數(shù)學平均分:%5.2f\t最高分:%d\n",average1[1],max1[1]); printf("全班計算機平均分:%5.2f\t最高分:%d\n",average1[2],max1[2]); for(i=0;i<n;i++) printf("第%d位考生的平均分為:%5.2f\t最高分為:%d\n",i+1,average2[i],max2[i]);}上機運行下列程序,觀察輸出結果,并分析理解。 #include<string.h>#include<stdio.h>#include<stdlib.h>voidmain(){ staticcharstr1[]="abc",str2[]="asdfgh8"; charch; ch='8'; system("cls"); strcpy(str1,str2); printf("%s\t%s\t%c\n",str1,str2,ch);}=1\*GB1⒈程序希望的輸出結果是:abcasdfgh8 asdfgh8 8.=2\*GB1⒉原因:strcpy(str1,str2)函數(shù)調用中,strcpy()無法檢查,str2指向的字符串的大小是否適合str1指向的數(shù)組。如果str1指向的字符串長度為n,如果str2中有不超過n-1個字符,那么復制操作可以順利完成。但是如果str2指向了一個更長的字符串,操作結果就得另當別論了。strcpy(str1,str2)會一直復制到str2的第一個字符'\0'為止,所以它會越過str1的數(shù)組邊界繼續(xù)復制。無論后面內存中的是什么,都將被覆蓋。如果來源字串的長度太長,當復制到目的緩沖區(qū)時,它會覆寫到連接目的緩沖區(qū)后方的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論