《C語言實驗報告 數(shù)組》由會員分享,可在線閱讀,更多相關(guān)《C語言實驗報告 數(shù)組(9頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、C語言實驗報告
實驗名稱
專業(yè)
姓名
學號
班級
指導老師
實驗七 數(shù)組
1. 實驗?zāi)康?
(1) 熟練掌握一維數(shù)組、二維數(shù)組的定義、初始化和輸入/輸出方法;
(2) 熟練掌握字符數(shù)組和字符串函數(shù)的使用;
(3) 掌握與數(shù)組有關(guān)的常用算法(如查找、排序等)。
2. 實驗指導
(1) 對任意一個一維型數(shù)組,從中找出數(shù)組元素的最大值和最小值并輸出。
要求:
① 數(shù)組有十個元素;
② 使用scanf函數(shù)實現(xiàn)數(shù)組元素的輸入前給出必要的提示;
③ 輸出時,首先輸出數(shù)組的十個元素,然后輸出其最大值和最小值。
分析指導:
① 算法分析:
2、首先定義一個數(shù)組,通過循環(huán)從鍵盤輸入十個數(shù)組元素的值,再通過另一個循環(huán)判斷數(shù)組元素的最大只和最小值;
② 根據(jù)分析情況編寫程序:
#include
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[
3、i]s2,返回一個正數(shù);s1=s2,返
4、回0;s1
5、據(jù)第二個字符比較結(jié)果,‘n’比‘I’大5,因此應(yīng)輸出‘5’;
② 根據(jù)分析情況編寫程序:
#include
int cmpstr(char s1[],char s2[])
{
int i,diff;
i=0;
while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;
if(s1[i]=='\0'&&s2[i]=='\0')
diff=0;
else
diff=s1[i]-s2[i];
return diff;
}
void main()
{
int z;
char s1[100],s2[100
6、];
printf("input the first string:");
//輸入字符串1
gets (s1);
printf("input the second string:");
//輸入字符串2
gets(s2);
z=cmpstr(s1,s2);
//輸出比較結(jié)果
printf("the difference between two strings is %d\n",z);
}
查看運行結(jié)果如下:
重新輸入兩個字符串meet,mood運行結(jié)果如下:
(3) 再給定的字符串中查找指定的字符。
要求:
① 字符串采用直接初始化的方
7、式處理;
② 通過scanf函數(shù)讀入一個任意字符;
③ 在字符串中查找該字符,如果存在該字符,輸出該字符在字符串中的一次出現(xiàn)的位置,如果再給定的字符串中不存在該字符,則給出相應(yīng)的說明信息。
#include
void main()
{
int i;
char ch;
char s[]=" program";
printf(" 輸入一個英文字母: ");
scanf("%c",&ch);
for (i=0;s[i]!='\0';i++)
{
if (s[i]==ch)
break;
}
if (i<7)
print
8、f("s[%d]=%c\n",i,ch);
else
printf("No founded\n");
}
輸入一個英文字母O運行程序如下:
再次輸入一個英文字母w運行程序如下:
(4) 首先輸入一個大于二且小于十的整數(shù)n,然后定義一個二維整型數(shù)組(n*n),初始化該數(shù)組,講述組中最大元素所在的行和最小元素所在的行對調(diào)。
要求:
① n*n數(shù)組元素的值由scanf函數(shù)從鍵盤輸入(假定最大值最小值不在同一行上),然后輸出該數(shù)組;
② 查找最大值最小值所在的行,將數(shù)組中最大元素所在的行和最小元素所在的行對調(diào),并輸出對調(diào)后的數(shù)組;
③ 為直觀起見,數(shù)組按n行n列的方式
9、輸出;
④ 修改程序,對最大值與最小值可能出現(xiàn)在一行種的情況進行處理。
#include
main()
{
long matrix[9][9],min,max,temp;
int i,j,n,nMax=0,nMin=0;
printf("\nplease inpute n of matrix:\n");
scanf("%d",&n);
printf("\nplease inpute elements of matrix(%d*%d):\n",n,n);
for(i=0;i
10、("%ld",&matrix[i][j]);
min=max=matrix[0][0];
for(i=0;imax)
{
max=matrix[i][j];
nMax=i;
}
else if(matrix[i][j]
11、trix[nMax][j]=matrix[nMin][j];
matrix[nMin][j]=temp;
}
printf("\nResult matrix:\n");
for(i=0;i