《C語(yǔ)言實(shí)驗(yàn)報(bào)告數(shù)組》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語(yǔ)言實(shí)驗(yàn)報(bào)告數(shù)組(8頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、C語(yǔ)言實(shí)驗(yàn)報(bào)告數(shù)組
數(shù)組 語(yǔ)言 實(shí)驗(yàn)
C 語(yǔ)言實(shí)驗(yàn)報(bào)告
實(shí)驗(yàn)名稱
專業(yè)
姓名
學(xué)號(hào)
班級(jí)
指導(dǎo)老師
實(shí)驗(yàn)七
數(shù)組 1. 實(shí)驗(yàn)?zāi)康?(1)
熟練掌握一維數(shù)組、二維數(shù)組得定義、初始化與輸入/輸出方法; (2)
熟練掌握字符數(shù)組與字符串函數(shù)得使用; (3)
掌握與數(shù)組有關(guān)得常用算法(如查找、排序等). 2. 實(shí)驗(yàn)指導(dǎo) (1)
對(duì)任意一個(gè)一維型數(shù)組,從中找出數(shù)組元素得最大值與最小值并輸出。
要求:
?、?數(shù)組有十個(gè)元素; ② 使用scanf 函數(shù)實(shí)現(xiàn)數(shù)組元素得輸入前給出必要得提示; ③ 輸出時(shí),首先輸出數(shù)組得十個(gè)元素,然后輸出其最大值與最小值
2、。
分析指導(dǎo):
?、?算法分析:首先定義一個(gè)數(shù)組,通過循環(huán)從鍵盤輸入十個(gè)數(shù)組元素得值,再通過另一個(gè)循環(huán)判斷數(shù)組元素得最大只與最小值; ② 根據(jù)分析情況編寫程序:
?。nclude<stdio、h> main() { int a[10],i,max,min; printf(please input ten integers:); for(i=0;i=9;i++)
{
scanf(%d",a[i]); } max=a[0]; min=a[0]; for(i=1;i〈=9;i++)
{
if(a[i]〉max)
max=a[i];
if(a[i]〈min)
3、min=a[i]; } for(i=0;i〈=9;i++)
?。?
printf("a[%d]=%d\n,i,a[i]); } printf(The maximum value is %d,and the minimum value is %d\n,max,min); } 運(yùn)行程序,輸入十個(gè)整數(shù),如:
21 37 6 17 9 12 89 76 35 59 運(yùn)行結(jié)果如下:
?。?)
編寫函數(shù) cmpStr(char s1[],char s2[])比較兩個(gè)字符串 s1 與 s2得大小。如果 s1s2,返回一個(gè)正數(shù);s1=s2,返回 0;s1〈s2,返回一個(gè)負(fù)數(shù),在主函數(shù)中調(diào)用該函
4、數(shù)完成字符串得比較操作,并輸出返回得值。
要求: ① 不允許使用 strcmp()函數(shù); ② 用 gets()函數(shù)在主函數(shù)中輸入兩個(gè)字符串; ③ 實(shí)現(xiàn)觸摸屏受托人()函數(shù),返回得正數(shù)或負(fù)數(shù)得絕對(duì)值應(yīng)該就是進(jìn)行比較得兩個(gè)字符傳中相應(yīng)字符得 ASCII 碼得差值。
分析指導(dǎo):
?、?算法分析:兩個(gè)字符串從第一個(gè)字符開始一一對(duì)應(yīng)進(jìn)行比較,直到不相等得那個(gè)字符,從而求得它們得 ASCII 碼得差值。比如,A與C相比,由于AC,應(yīng)輸出負(fù)數(shù),由于A"與C得 ASCII 碼得差值為2,因此,應(yīng)輸出-2。同理,And與Aid比較,根據(jù)第二個(gè)字符比較結(jié)果,n比I大 5,因此應(yīng)輸出5; ② 根據(jù)分析情況
5、編寫程序: #include〈stdio、h〉 int cmpstr(char s1[],char s2[]) {
;ffid,i tni? i=0;
;++i))0\'=?。輎[1s(&&)]i[2s==]i[1s((elihw? if(s1[i]=="\0'&s2[i]=='\0')
;0=ffid?? esle? ;]i[2s]i[1s=ffid?? return diff;
} void main() {
??;z tni? char s1[100],s2[100];
printf(input the first string:); // 1 串符字入輸? ;)1
6、s( steg? ;):gnirts dnoces eht tupni(ftnirp?// 2 串符字入輸? gets(s2);
??;)2s,1s(rtspmc=z?// 果結(jié)較比出輸?,n\d% si sgnirts owt neewteb ecnereffid eht(ftnirp?z); } 查瞧運(yùn)行結(jié)果如下:
重新輸入兩個(gè)字符串 meet,mood 運(yùn)行結(jié)果如下:
(3)
再給定得字符串中查找指定得字符。
要求: ① 字符串采用直接初始化得方式處理; ② 通過 scanf 函數(shù)讀入一個(gè)任意字符; ③ 在字符串中查找該字符,如果存在該字符,輸出該字符在字符串中得一次出
7、現(xiàn)得位置,如果再給定得字符串中不存在該字符,則給出相應(yīng)得說明信息. #include〈stdio、h void main()
?。?
int i;
??;hc rahc? ;"margorp =][s rahc? ;) :母字文英個(gè)一入輸 (ftnirp? ;)hc,"c%"(fnacs? )++i;0\"=!]i[s;0=i( rof? {? ? if (s[i]==ch)
? break;
}
)7i( fi?
??;)hc,i,n\c%=]d%[s(ftnirp? esle?
printf(No founded\n); } 輸入一個(gè)英文字母 O 運(yùn)行程序如下:
8、再次輸入一個(gè)英文字母 w 運(yùn)行程序如下:
?。?)
首先輸入一個(gè)大于二且小于十得整數(shù)n,然后定義一個(gè)二維整型數(shù)組(n*n),初始化該數(shù)組,講述組中最大元素所在得行與最小元素所在得行對(duì)調(diào)。
要求:
① n*n 數(shù)組元素得值由scanf 函數(shù)從鍵盤輸入(假定最大值最小值不在同一行
上),然后輸出該數(shù)組; ② 查找最大值最小值所在得行,將數(shù)組中最大元素所在得行與最小元素所在得行對(duì)調(diào),并輸出對(duì)調(diào)后得數(shù)組; ③ 為直觀起見,數(shù)組按 n 行 n 列得方式輸出; ④ 修改程序,對(duì)最大值與最小值可能出現(xiàn)在一行種得情況進(jìn)行處理。
?。ncludestdio、h main() {
;p
9、met,xam,nim,]9[]9[xirtam gnol?
;0=niMn,0=xaMn,n,j,i tni? printf(\nplease inpute n of matrix:\n");
;)n&,d%(fnacs? printf(\nplease inpute elements of matrix(%d*%d):\n,n,n);
for(i=0;i<n;i++)
for(j=0;jn;j++)
? ? scanf("%ld,matrix[i][j]);
;]0[]0[xirtam=xam=nim?
)++i;ni;0=i(rof?
?。?+j;nj
10、;0=j(luò)(rof?
?。??
if(matrix[i][j]max)
{ ? ? ?
? ?
;]j[]i[xirtam=xam?
?
?。唬?xaMn?
? }
?
?。﹏im<]j[]i[xirtam(fi esle?
{
??;]j[]i[xirtam=nim? ? ?
?。頜in=j;
}
?。?? ? for(j=0;jn;j++)
?。?
;]j[]xaMn[xirtam=pmet? ?
?。籡j[]niMn[xirtam=]j[]xaMn[xirtam?
matrix[nMin][j]=temp;
?。?
;)
11、n\:xirtam tluseRn\(ftnirp?
?。?+i;ni;0=i(rof? {
)++j;nj;0=j(rof?
;)]j[]i[xirtam,dl5%(ftnirp?
printf(\n);
} ?} 輸入一個(gè)數(shù) 4,輸入一個(gè)4*4 得數(shù)組 1 3
6
7
2 4
?。?
8
1 3
5
7
2 6
9
?。?運(yùn)行程序如下:
再次輸入一個(gè)數(shù)字 3,輸入一個(gè) 3*3 得數(shù)組 1 2
3 2 4
5 3 7
?。?運(yùn)行程序如下:
3 實(shí)驗(yàn)結(jié)論
通過本次實(shí)驗(yàn)熟練得掌握一維數(shù)組、二維數(shù)組得定義、初始化與輸入/輸出方法以及字符數(shù)組與字符串函數(shù)得使用,還有就就是掌握與數(shù)組有關(guān)得常用算法