实验四 数组

更新时间:2023-09-26 12:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验

一、实验目的及要求:

(1)掌握一维数组和二维数组的定义、赋值和输入输出的方法; (2)掌握字符数组和字符串函数的使用;

(3)掌握与数组有关的算法(特别是排序算法)。 二、实验内容

1、任务名称:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。

源代码:#include

#define N 10 void main( ) { int i,a[N],av;

for(i=0;i

printf(\; }

for(i=0;i!=N;i++) av+=a[i]; av=av/N;

printf(\; }

运行结果:

实验结果分析:

2、任务名称:输入5个数据,然后求它们的和并输出结果。

源代码:#include void main( )

{int i, a[5], sum = 0; for (i = 0; i <= 4; i ++) scanf(\ for (i = 0; i <= 4; i ++) sum += a[i];

printf(\}

运行结果:

实验结果分析:

3、任务名称:有一个3行4列的距阵,现要求编程求出其中最大的那个元素的值,以及它所在的行号与列号。

源代码:#include void main( )

{ int i, j, row, colum, max;

static int a[3][4] = {{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}}; max=a[0][0]; row=0; colum=0;

for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max)

{row=i;colum=j;max=a[i][j];}

printf(\ max, row, colum); }

运行结果:

实验结果分析:

4、任务名称:数组中已存互不相同的10个整数,从键盘输入一个整数,输出与该值

相同的数组元素下标。

源代码:#include void main( )

{ int i, x, a[10]={1,2,3,4,5,6,7,8,9,10};

scanf (\ /*输入x变量的值 */

for ( i=0; i<10; i++ ) printf(\ printf(\

for ( i=0; i<10; i++ ) /* 循环查找与x相等的元素 */

if ( a[i]==x ) printf(\ /* 输出查找结论 ,输出下标值 */

else printf(\}

运行结果:

实验结果分析:

5、任务名称:任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,

然后输入一个整数插入到数列中,使数列保持从大到小的顺序。

源代码:#include #define N 11 void main()

{ int i,j,n,a[N];

printf(\ for (i=0; i

scanf(\乱序输入10个整数*/ for(i=0;i

{for(j=0;j

运行结果:

实验结果分析:

6、任务名称:输入十个互不相同的整数并存在数组中,找出最大元素,并删除。

源代码:#include\void main() {

int i,k,n,a[10]; for(i=0;i<10;i++) scanf(\k=0;

for ( i=0; i<10; i++ ) if ( a[k]

for( k;k<10;k++) {n=a[k]; a[k]=a[k+1]; a[k+1]=n;} for(i=0;i<9;i++)

printf(\ }

运行结果:

实验结果分析:

平均分的学生成绩,用输入负数结束输入。

7、任务名称:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于源代码:#include void main( )

{ float x[1000], sum=0.0, ave, a; int n=0, i;

printf (\ mark : \\n\ scanf(\

while (a>=0.0 && n<1000)

{ sum+= a ; x[n]= a ; n++; scanf(\ }

ave= sum/n ; printf (\ printf (\ for (i=0; i

if ( x[i]

运行结果:

实验结果分析:

8、任务名称:打印如下杨辉三角形

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

源代码:#include void main() {

int i,j,a[6][6]; for(i=0;i<6;i++) {

a[i][0]=1;a[i][i]=1; }

for(i=2;i<6;i++) {for(j=1;j<=i-1;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j]; }

for(i=0;i<6;i++) {for(j=0;j<=i;j++) printf(\ printf(\ } }

运行结果:

实验结果分析:

9、任务名称:任意输入两个字符串, 并存放在a,b两个数组中。然后把较短的字符串

放在a数组,较长的字符串放在b数组。并输出。

源代码:#include #include void main()

{ char a[10],b[10]; int c,d,k,ch; scanf(\ scanf(\

c=strlen(a); d=strlen(b); if(c>d)

printf(\ if(c

printf(\ }

运行结果:

实验结果分析:

10、任务名称:

源代码:#include #include void main( )

{ char s1[80], s2[40]; int i = 0, j = 0;

printf(\ scanf(\

printf(\ scanf(\ while (s1[i]!= '\\0' ) i++;

while (s2[j]!= '\\0' ) s1[i++]=s2[j ++]; s1[i]= '\\0';

printf(\}

运行结果:

实验结果分析:功能是结合两个字符串组成一个字符串。

11、任务名称:从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。

源代码:#include void main ( )

{ char str1[100],str2[100]; int i,s;

printf(\ printf(\ i= 0 ;

while((str1[i]==str2[i])&&(str1[i]!= 0 )) i++;

s= (int)str1[i]-(int)str2[i] ; printf(\ }

运行结果:

实验结果分析:

12、任务名称:输入若干个字符串,求出每个字符串的长度,并打印最长一个字符

串的内容。以“stop”作为输入的最后一个字符串。

源代码:#include #include #include using namespace std; int main() {

string s,smax; int a[20]; int i;

int max=0; while(s!=\ for(i=0;i<20;i++) { cin>>s;

a[i]=s.length(); if(max

max=s.length(); smax=s;

cout<

cout<

return 0; }

运行结果:

实验结果分析:

本文来源:https://www.bwwdw.com/article/cfqd.html

Top