题目地址
问题 A: 习题6-4 有序插入
#include <iostream>
using namespace std;
int main ( )
{
int a[ 10 ] , t, i, j;
for ( i= 0 ; i<= 8 ; i++ ) {
cin>> a[ i] ;
}
cin>> t;
for ( j= 8 ; j>= 0 ; j-- ) {
if ( t< a[ j] ) {
a[ j+ 1 ] = a[ j] ;
}
else {
a[ j+ 1 ] = t;
break ;
}
}
for ( i= 0 ; i<= 9 ; i++ ) {
cout<< a[ i] << endl;
}
return 0 ;
}
问题 B: 习题6-5 数组元素逆置
#include <iostream>
using namespace std;
int main ( )
{
int a[ 10 ] , t, i, j;
for ( i= 0 ; i<= 9 ; i++ ) {
cin>> a[ i] ;
}
for ( i= 0 , j= 9 ; i<= 9 , j>= 0 ; i++ , j-- ) {
if ( i< j) {
t= a[ i] ;
a[ i] = a[ j] ;
a[ j] = t;
}
else {
break ;
}
}
for ( i= 0 ; i<= 9 ; i++ ) {
cout<< a[ i] << endl;
}
return 0 ;
}
问题 C: 习题6-6 杨辉三角
#include <iostream>
using namespace std;
int main ( )
{
int n, i, j;
cin>> n;
int a[ n] [ n] = { 0 } ;
for ( i= 0 ; i< n; i++ ) {
for ( j= 0 ; j<= i; j++ ) {
if ( j== 0 || j== i) {
a[ i] [ j] = 1 ;
}
else {
a[ i] [ j] = a[ i- 1 ] [ j- 1 ] + a[ i- 1 ] [ j] ;
}
}
}
for ( i= 0 ; i< n; i++ ) {
for ( j= 0 ; j<= i; j++ ) {
cout<< a[ i] [ j] << " " ;
}
cout<< endl;
}
return 0 ;
}
问题 D: 习题6-12 解密
#include <stdio.h>
#include <string.h>
int main ( ) {
char a[ 20 ] ;
gets ( a) ;
for ( int i= 0 ; i< strlen ( a) ; i++ ) {
if ( a[ i] >= 'a' && a[ i] <= 'z' )
a[ i] = 'a' + 'z' - a[ i] ;
if ( a[ i] >= 'A' && a[ i] <= 'Z' )
a[ i] = 'A' + 'Z' - a[ i] ;
}
puts ( a) ;
return 0 ;
}
问题 E: 习题6-13 字符串比较
#include <stdio.h>
#include <string.h>
int main ( ) {
char s1[ 20 ] , s2[ 20 ] ;
gets ( s1) ;
gets ( s2) ;
for ( int i= 0 ; i< 20 ; i++ ) {
if ( s1[ i] != s2[ i] ) {
printf ( "%d\n" , s1[ i] - s2[ i] ) ;
break ;
}
else continue ;
}
return 0 ;
}
问题 F: 例题6-1 逆序输出数组元素
#include <iostream>
using namespace std;
int main ( )
{
int a[ 10 ] , i;
for ( i= 0 ; i<= 9 ; i++ ) {
cin>> a[ i] ;
}
for ( i= 9 ; i>= 0 ; i-- ) {
cout<< a[ i] << endl;
}
return 0 ;
}
问题 G: 例题6-2 数组求解Fibonacci数列问题
#include <iostream>
using namespace std;
int main ( )
{
int a[ 20 ] , i;
a[ 0 ] = a[ 1 ] = 1 ;
for ( i= 2 ; i< 20 ; i++ ) {
a[ i] = a[ i- 1 ] + a[ i- 2 ] ;
}
for ( i= 0 ; i<= 19 ; i++ ) {
cout<< a[ i] << endl;
}
return 0 ;
}
问题 H: 例题6-3 冒泡排序
#include <iostream>
using namespace std;
int main ( )
{
int a[ 10 ] , i, j, t;
for ( i= 0 ; i< 10 ; i++ ) {
cin>> a[ i] ;
}
for ( i= 0 ; i< 9 ; i++ ) {
for ( j= 0 ; j< 9 - i; j++ ) {
if ( a[ j] > a[ j+ 1 ] ) {
t= a[ j+ 1 ] ;
a[ j+ 1 ] = a[ j] ;
a[ j] = t;
}
}
}
for ( i= 0 ; i<= 9 ; i++ ) {
cout<< a[ i] << endl;
}
return 0 ;
}
问题 I: 例题6-4 矩阵转置
#include <iostream>
using namespace std;
int main ( )
{
int a[ 2 ] [ 3 ] , b[ 3 ] [ 2 ] , i, j, t;
for ( i= 0 ; i< 2 ; i++ ) {
for ( j= 0 ; j< 3 ; j++ ) {
cin>> a[ i] [ j] ;
}
}
for ( i= 0 ; i< 3 ; i++ ) {
for ( j= 0 ; j< 2 ; j++ ) {
b[ i] [ j] = a[ j] [ i] ;
cout<< b[ i] [ j] << " " ;
}
cout<< endl;
}
return 0 ;
}
问题 J: 例题6-9 字符串求最大值
#include <stdio.h>
#include <string>
int main ( )
{
int i, j, t;
char a[ 20 ] , b[ 20 ] , c[ 20 ] ;
gets ( a) ;
gets ( b) ;
gets ( c) ;
for ( i= 0 ; i< 20 ; i++ ) {
if ( a[ i] >= b[ i] && a[ i] >= c[ i] ) {
puts ( a) ;
break ;
}
else if ( b[ i] >= a[ i] && b[ i] >= c[ i] ) {
puts ( b) ;
break ;
}
else {
puts ( c) ;
break ;
}
}
return 0 ;
}