实验三 数组.docx
文本预览下载声明
实验三 数 组1.实验目的要求掌握一维数组和二维数组的定义、初始化赋值、元素引用的方法。初步了解数组名与地址的关系。掌握字符数组和字符串函数的使用。掌握与数组有关的算法(特别是排序和查找算法)。2.实验内容(1)阅读下列程序,写出其运行结果,并指出其功能。1#include iostream.h#define N 10void main(){int a[N];int s,i,j,t;for ( i = 0 ; i N ; i ++ ){if ( i % 2 ) a[ i ] = i * i ;else a[ i ] = 100 - ( i / 2 ) * ( i / 2 ) ;} for ( i = 0 ; i N ; i ++ ) cout a[ i ] ;cout endl ;s = 0 ;for( i = 0 ; i N ; i ++ ) s = s + a[ i ] ;cout “sum of a = ” s ;for(i = 0 ; i N ; i ++ ){t = a[ i ] ;j = i - 1 ;while( j = 0 t a[ j ] ) {a[ j + 1] = a[ j ] ;j -- ;}a[ j + 1 ] = t ;}for( i = 0 ; i N ; i ++ ) cout a[ i ] ;cout endl ;}功能:一个数组 单数项为i的平方 偶数项为100 - ( i / 2 ) * ( i / 2 ) 循环N次 并输出每一项 求和再输出 最后将各项从大到小排列输出。2#include iostream.h#include string.hvoid main( ){char a[ 20 ] = ”TER” , b[ 20 ] = ”COMP” ;int i = 0 ;strcat( a , b ) ;while (a[ i ++ ] != ’\0’ ) b[ i ] = a[ i ] ;cout b ;}功能:将b放在a后 输出b[0]a[1]···到最后3 #include iostream.hvoid main( ){int i = 0 , base , n , j , num[ 20 ] ;cin n base ;do{i ++;num[ i ] = n % base ;n = n / base ;}while ( n != 0 );for ( j = i ; j = 1 ; j--) cout num[ j ] ;}功能:n不等于0的时候,使i自增,令数组num的值为n/base的余数,令n的值为n/base的商的整数部分。当不满足上述条件时,执行循环,令i=j,当j大于等于1的时候输出num数组的第j+1个成员,之后令j自减,直到不满足上述条件。(2)编写程序实现下列问题的求解。1 编程产生下列数组,并输出。 ⑴一维数组(1 4 9 16 25 36 49 64 81 100) #includeiostream.hint main(){ cout(;int a[10];int i,s;for(i=0;i10;i++){a[i]=(i+1)*(i+1);couta[i] ;}cout);} (1 3 6 10 15 21 28 36 45 55)#includeiostream.h int main(){ int a[11],i,s=0;cout(;for(i=1;i=10;i++){s=s+i;a[i]=s;couta[i] ;}cout);}(1 2 3 5 8 13 21 34 55 89) #includeiostream.h int main(){ int a[10],i; cout(; a[0]=1; a[1]=2; couta[0] a[1] ;for(i=2;i10;i++){a[i]=a[i-1]+a[i-2];couta[i] ;}cout);} ⑵二维数组 1) 1 2 3 4 5 6 2) 1 2 3 .....n-1 0 2 3 4 5 6 0 2 3 4 ..... 0 1 3 4 5 6 0 1 3 4 5 ..... 1 2 4 5 6 0 1 2 ................ 5 6 0 1 2 3 n-1 0 1 .....n-3 n-2 6 0 1 2 3 4 0 1 2 .....n-2 n-1 3) 1 2 3 4 5 6 4) A B C D E F 2 1 2 3 4
显示全部