您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页实验六 数组应用(一)daan

实验六 数组应用(一)daan

来源:筏尚旅游网


实验六 数组应用(一)

一、实验目的

1. 掌握一维数组的定义和使用; 2. 了解二维数组的定义和使用。 二、实验学时数

2学时 三、实验步骤 (一)阅读程序

1.#include

main()

{int a[]={1, 2 , 3 , 4,5} , i , j , s=0 ; j = 1;

for ( i = 4 ; i>=0 ; i--) { }

} 分析结果 运行结果 12345 s = s+ a[i] * j ; j = j * 10 ;

printf(\" s= %d \\n\" , s );

2. main() {

int k ;

int a[3][3] = {9,8,7,6,5,4,3,2,1 } ; for ( k =0 ; k < 3 ; k++ )

printf(“%d , \\n”,a [k] [2-k ] ); }

分析结果 7 , 5 , 3 , 运行结果 3. main()

{ int i , j ,row =0 ,col = 0 , m ;

int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 }; m = a [0][0] ; for (i=0 ;i < 3 ;i++)

for (j = 0 ; j < 3 ; j++ )

if ( a[ i] [ j ] >m ) { }

printf(“ ( % d , % d ) = % d \\n“ , row , col ,m ); } 分析结果 运行结果

( 1 , 2 ) = 6

m = a[ i ][ j ] ; row = i ; col = j ;

(二)完成程序

要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。

1.下面程序的功能是将十进制整数转换成二进制 ,请在_______上填写正确内容。

#include main()

{ int k =0 ,n , num[15] ;

printf ( \" Enter data that will be converted \\n\") ; scanf(\"%d\" , &n) ; do

num[k] = n%2 ; n = n / 2 ;

printf (\"The data % d has been converted :\\n\" , n ) ; {k++;

for (k;k>0;k--)

} while( n !=0 );

printf( \" % 5d \\n \" ,num[k] );}

2、 设数组 a 中的元素均为正整数,以下程序是求 a 中奇数的个数和奇数的平均值,请在_______上填写正确内容。 #include main() { int a [10 ] = { 10,9,8,7,6,5,4,3,2,1} ; int k ,s , i ; float ave ;

for ( i = 0 , k= s =0 ; i< 10 ;i ++ ) { if (a[i]%2==0) continue ; s+=a[i]; k++; }

if( k!=0)

{ ave = s / k ;

printf (\" %d , %f \\n \" , k , ave ); } }

(三)调试程序

要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。

1.行号 #include 1 main()

2{ int a [4] = {4 * 0 } ; 3

int i ;

4 for (i=0 ;i < 4 ;i++) 5 scanf (\"%d\" ,&a[i]); 6 7 8} 正确 运行结果: 错误所在行: 错误 应改为: for (i=0 ;i < 4 ;i++) a[0] = a[0] + a[i] ; printf( \" %d ,\" , a[0] ) ;

2.行号 main()

1 { 2 3

int a [ 21 ] , i ; scanf (“ %d “,&a) ;

for ( i =1 ; i <=20 ; i + +) ;

4 6 }

a [0] = a [ 0] + a[ i ] ;

5 printf( “Sum= % d \\n” , a[0]) ; #include main()

{int a [21], i; for(i=0;i<21;i++) scanf (\"%d\for ( i =1 ; i <=20 ; i++) a [0] = a [ 0] + a[ i ] ;

printf( \"Sum= % d \\n\" , a[0]) ; } 正确 运行结果: 错误所在行: 错误 应改为: 3.调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。 行号 1 main( )

2 { int i,n,a[10],av; 3 4 5 6 7 8 9 10 11 12 }

上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。

for(i=0;iscanf(\"%d\; for(i=0;ifor(i=0;i!=n;i++) av+=a[i];

printf(\"av=%f\\n\;

if(i%3==0) printf(\"\\n\");

正确 运行结果: 错误所在行: 错误 应改为: #include main( )

{ int i,n=10,a[10],av=0; for(i=0;iscanf(\"%d\ for(i=0;ifor(i=0;iprintf(\"av=%d\\n\ }

(四)编写程序

1. 在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次

序排列。

#include #define N 10 void main() { int i,j,t;

printf(\"input N numbers :\\n\"); for (i=0;ifor(i=0;ia[i]=a[i+1]; a[i+1]=t; }

printf(\"the sorted numbers :\\n\"); for(i=0;iprintf(\"%d \

printf(\"\\n\"); }

2.求5×5矩阵两条对角线上的各元素之和。

#include #define N 5 void main() {

int a[N][N]; int i,j,s=0;

printf(\"input numbers :\\n\"); for (i=0;is+=a[i][i]+a[i][N-i-1]; if(N%2==1)

s-=a[N/2][N/2];

printf(\"s=%d\\n\ }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务