第六章自动1122徐达武



课本编程习题

1.0

#include<iostream>
using namespace std;
 
long A[5];
void main()
{
	cout<<"依次输入5个数字"<<endl;
	for(int i=0;i<5;i++)
	{
		cout<<"每输入一个数字请回车"<<endl;
		cin>>A[i];
	}
	int j,k,t;
	for(j=0;j<4;j++)
	{	for(k=0;k<4-j;k++)
		{
		if(A[k]<A[k+1])
		{
		t=A[k];
		A[k]=A[k+1];
		A[k+1]=t;
		}
			
		
	}
			
		}
		
		for(int b=0;b<5;b++)
		{cout<<A[b]<<' ';}
		cout<<endl;
		
		}
考察for双重循环和冒泡排序法

2.0

#include<iostream>
using namespace std;
int max; 
int A[2][3];

void main()
{
cout<<"请为数组输入数值"<<endl;

for(int  i=0;i<2;i++)
{
	for(int j=0;j<3;j++)
cin>>A[i][j];

}



for( int a=0;a<2;a++)
{
	for( int b=0;b<=2;b++)
	{
cout<<A[a][b]<<' ';}

}

int c,d,e,f;
for( c=0;c<2;c++)
{if(c==0)
{for( max=A[c][0], d=1;d<3;d++)

if(max<A[c][d])
{max=A[c][d];
e=c;f=d;}
}
else
for(d=0;d<3;d++)
if(max<A[c][d])
{max=A[c][d];
e=c;f=d;
}


}
cout<<"最大数是"<<max<<endl;
cout<<"最大数位于"<<"第"<<e+1<<"行"<<"第"<<f+1<<"列"<<endl;
		
}		

考察for双重循环和else-if的使用

3.0
#include<iostream>
using namespace std;
#define LONG 1024
int i;
void main()
{
	char A[LONG];
cout<<"请输入字符串"<<endl;
cin>>A;
for( i=0;A[i]!=NULL;i++)
{;}


cout<<"共有"<<i<<"个"<<"字符"<<endl;
i--;
for(i;A[i]!=NULL;i--)

cout<<A[i]<<' ';
cout<<endl;







}




不知为毛会出现很多问号。C++中并没有串这种数据类型,但允许讲串放在char型数组中。注意宏定义#define的使用!!

改正后:

#include<iostream>
using namespace std;
#define LONG 1024
int i;
void main()
{
	char A[LONG];
cout<<"请输入字符串"<<endl;
cin>>A;
for( i=0;A[i]!=NULL;i++)
{;}


cout<<"共有"<<i<<"个"<<"字符"<<endl;
i--;
for(i;A[i]!=NULL;i--)
if(i>=0)
{
	cout<<A[i]<<' ';
cout<<endl;
}

}


4.0

#include<iostream>
using namespace std;
#define LONG 1024
int i,j,k,l;
char A[LONG];
void main()
{

cout<<"请输入内容"<<endl;
cin.getline(A,12);

for( i=0;A[i]<='9'&&A[i]>='0';i++)
{;}
cout<<"共有数字"<<i<<"个"<<endl;

for(j=0;A[j]<='Z'&&A[j]<='A';j++)

{;}

cout<<"共有大写字母"<<j<<"个"<<endl;

for(k=0;A[k]==32;k++)
{;}
cout<<"共有空格"<<k<<"个"<<endl;




}



这个程序还没调试成功,还需要仔细琢磨

修改后:

#include<iostream>
#include<iomanip>
using namespace std;
#define LONG 1024
int j,k,l,n,m=0;
char A[LONG];
void main()

{

cout<<"请输入内容"<<endl;
cin.getline(A,20);
for(int i=0;i<20;i++)
{
if(A[i]<='9'&&A[i]>='0')
j++;
else if(A[i]<='Z'&&A[i]>='A')
k++;
else if(A[i]==' ')
l++;
else if(A[i]>='a'&&A[i]<='z')

n++;

else 
m=strlen(A)-(j+k+l+n);
}
cout<<"共有数字"<<j<<"个"<<endl;
cout<<"共有大写字母"<<k<<"个"<<endl;
cout<<"共有空格"<<l<<"个"<<endl;
cout<<"小写字母"<<n<<"个"<<endl;
cout<<"其他字符"<<m<<"个"<<endl;

}

cin.getline()能输入空格,空格用' '表示,头文件用<iomanip>,strlen()计算串长度,包括空格



5.0

#include<iostream>
using namespace std;
#define LONG 1024
int i,k,l;
int j=0;
char A[LONG];
char B[LONG];
void main()
{
cout<<"请输入字符串"<<endl;
cin>>A;
for(i=0;A[i]!=0;i++)
if(A[i]>'9')
{B[j]=A[i];
j++;}


for(k=0;B[k]!=NULL;k++)
{
	cout<<B[k]<<' ';
}
cout<<endl;

}



注意要在9字上加单引号


6.0

#include<iostream.h>  
 
int function(int n); 
int function(int n)  
{  
   if(n==1||n==2)return 1;  
   else return function(n-1)+function(n-2);  
}   
void main()  
{  
    int i;  
  int  j=0;  
    for(i=1;i<=20;i++)  
    {  
        cout<<function(i)<<" ";  
        cout<<endl;  
        if(function(i)>=100&&function(i)<=999)  
            j++;  
    }  
     cout<<"数列前20个数中的三位数个数为:"<<j<<endl;  
     cout<<"该数列第16是:"<<function(16)<<endl;  
      
          
}  

















评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值