6.1 对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。
#include <stdio.h>
int main ( )
{
int i, a[ 10 ] ;
for ( i= 0 ; i<= 9 ; i++ )
a[ i] = i;
for ( i= 9 ; i>= 0 ; i-- )
printf ( "%d" , a[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
6.2用数组来处理求Fibonacci数列问题。
#include <stdio.h>
int main ( )
{
int i;
int f[ 20 ] = { 1 , 1 } ;
for ( i= 2 ; i<= 20 ; i++ )
f[ i] = f[ i- 2 ] + f[ i- 1 ] ;
for ( i= 0 ; i< 20 ; i++ )
{
if ( i% 5 == 0 ) printf ( "\n" ) ;
printf ( "%12d" , f[ i] ) ;
}
printf ( "\n" ) ;
return 0 ;
}
6.3 有10个地区的面积,要求对他们按由小到大的顺序排列。
#include <stdio.h>
int main ( )
{
int a[ 10 ] ;
int i, j, t;
printf ( "input 10 numbers :\n" ) ;
for ( i= 0 ; i< 10 ; i++ )
scanf ( "%d" , & a[ i] ) ;
printf ( "\n" ) ;
for ( j= 0 ; j< 9 ; j++ )
for ( i= 0 ; i< 9 - j; i++ )
if ( a[ i] > a[ i+ 1 ] )
{
t= a[ i] ; a[ i] = a[ i+ 1 ] ; a[ i+ 1 ] = t;
}
printf ( "the sorted number s:\n" ) ;
for ( i= 0 ; i< 10 ; i++ )
printf ( "%5d" , a[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
例6.4将一个二维数组行和列的元素互换,存到另一个二维数组中。
#include <stdio.h>
int main ( )
{
int a[ 2 ] [ 3 ] = { { 1 , 2 , 3 } , { 4 , 5 , 6 } } ;
int b[ 3 ] [ 2 ] , i, j;
printf ( "array a:\n" ) ;
for ( i= 0 ; i<= 1 ; i++ )
{
for ( j= 0 ; j<= 2 ; j++ )
{
printf ( "%5d" , a[ i] [ j] ) ;
b[ j] [ i] = a[ i] [ j] ;
}
printf ( "\n" ) ;
}
printf ( "array b:\n" ) ;
for ( i= 0 ; i<= 2 ; i++ )
{
for ( j= 0 ; j<= 1 ; j++ )
printf ( "%5d" , b[ i] [ j] ) ;
printf ( "\n" ) ;
}
return 0 ;
}
6.6输出一个已知的字符串。
#include <stdio.h>
int main ( )
{
char c[ 15 ] = { 'i' , ' ' , 'a' , 'm' , ' ' , 'a' , ' ' , 's' , 't' , 'u' , 'd' , 'e' , 'n' , 't' , '.' } ;
int i;
for ( i= 0 ; i< 15 ; i++ )
printf ( "%c" , c[ i] ) ;
printf ( "\n" ) ;
return 0 ;
}
6.7 输出一个菱形图。
#include <stdio.h>
int main ( )
{
char diamond[ ] [ 5 ] = { { ' ' , ' ' , '*' } , { ' ' , '*' , ' ' , '*' } , { '*' , ' ' , ' ' , ' ' , '*' } , { ' ' , '*' , ' ' , '*' } , { ' ' , ' ' , '*' } } ;
int i, j;
for ( i= 0 ; i< 5 ; i++ )
{
for ( j= 0 ; j< 5 ; j++ )
printf ( "%c" , diamond[ i] [ j] ) ;
printf ( "\n" ) ;
}
return 0 ;
}
6.8输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
#include <stdio.h>
int main ( )
{
char string[ 81 ] ;
int i, num= 0 , word= 0 ;
char c;
gets ( string) ;
for ( i= 0 ; ( c= string[ i] ) != '\0' ; i++ )
if ( c== ' ' ) word= 0 ;
else if ( word== 0 )
{
word= 1 ;
num++ ;
}
printf ( "there are %d words in this line.\n" , num) ;
return 0 ;
}
6.9 有三个字符串,要求找出其中最大者。
#include <stdio.h>
#include <string.h>
int main ( )
{
char str[ 3 ] [ 20 ] ;
char string[ 20 ] ;
int i;
for ( i= 0 ; i< 3 ; i++ )
gets ( str[ i] ) ;
if ( strcmp ( str[ 0 ] , str[ 1 ] ) > 0 )
strcpy ( string, str[ 0 ] ) ;
else
strcpy ( string, str[ 1 ] ) ;
if ( strcmp ( str[ 2 ] , string) > 0 )
strcpy ( string, str[ 2 ] ) ;
printf ( "\nthe largest is:\n%s\n" , string) ;
return 0 ;
}