C++程序设计教程 第3版——习题七9-15

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

有关9-15的解答

一、题目

请添加图片描述

二、代码解答

1.9-12

代码如下(示例):

9.#include<iostream>
using namespace std;
#define N 3
#define M 4
void sum(int a[N][M])
{
	int i=0,j=0,sum=0;
	for(j=0;j<M;j++)
	sum=sum+a[0][j];
	for(i=0;i<N;i++)
	sum=sum+a[i][0];
	for(j=0;j<M;j++)
	sum=sum+a[N-1][j];
	for(i=0;i<N;i++)
	sum=sum+a[i][M-1];
	sum=sum-a[0][0]-a[0][M-1]-a[N-1][0]-a[N-1][M-1];
	cout<<"该二维数组中周边元素之和为:"<<sum<<endl;
}
int main(void)
{
	int a[N][M]={1,2,3,4,5,6,7,8,9,10,11,12};
	sum(a);
	return 0;
}
10.#include<iostream>
using namespace std;
#define N 5
#define M 5
void sum(int a[N][M])
{
	int i=0,j=0,sum=0;
	while(i<N)
	sum=sum+a[i++][j++];
	j--;
	i=0;
	while(j>=0)
	{
		sum=sum+a[i][j];
		i++;
		j--;
	}
	cout<<"该二维数组两条对角线元素之和为:"<<sum<<endl;
}
int main(void)
{
	int a[N][M]={1,2,3,4,5,2,3,4,5,6,3,4,5,6,7,4,5,6,7,8,5,6,7,8,9};
	sum(a);
	return 0;
}
11.#include<iostream>
using namespace std;
#define N 5
#define M 5
void my_strlwr(char a[N])
{
	int i;
	for(i=0;i<N;i++)
	if(a[i]>64&&a[i]<91) a[i]=a[i]+'a'-'A';
	for(i=0;i<N;i++)
		cout<<a[i]<<'\t';
	cout<<endl;
}
int main(void)
{
	char a[N]={0};
    int i;
	for(i=0;i<N;i++)
		cin>>a[i];
	my_strlwr(a);
	return 0;
}
12.#include<iostream>
using namespace std;
void fz(char a[],int n)
{
	int i,t;
	for(i=0;i<n/2;i++)
	{
		t=a[i];
		a[i]=a[n-1-i];
		a[n-1-i]=t;
	}
}
int main()
{
	int n,i;
	char a[30]={0};
	cout<<"请您输入字符,注意少于30个"<<endl;
	cout<<"请您先输入字符个数"<<endl;
	cin>>n;
	for(i=0;i<n;i++)
	cin>>a[i];
	fz(a,n);
	for(i=0;i<n;i++)
		cout<<a[i]<<'\t';
	cout<<endl;
	return 0;
}

2.13-15

代码如下(示例):

13.#include<iostream>
using namespace std;
void pd(char zhu[],char zi[])
{
	int i,j,k,s=0;
	for(i=0;zhu[i]!='\0';i++)
	{
		for(j=i,k=0;zhu[j]!='\0'&&zi[k]==zhu[j];j++,k++) ;
		if(zi[k]=='\0') s=i+1;
	}
	if(s!=0) cout<<"恭喜,是子串,初始位置为:"<<s<<endl;
	else cout<<"很抱歉,不是子串。"<<endl;
}
int main()
{
	int i,n,m;
	char a[30]={0},b[30]={0};
	cout<<"请您输入主串个数:(注意:不要多于30)"<<endl;
	cin>>n;
	cout<<"请您输入主串:"<<endl;
	for(i=0;i<n;i++)
		cin>>a[i];
	cout<<"请您输入子串个数:(注意:不要多于30)"<<endl;
	cin>>m;
	cout<<"请您输入子串:"<<endl;
	for(i=0;i<m;i++)
		cin>>b[i];
	pd(a,b);
	return 0;
}
14.#include<iostream>
using namespace std;
#define N 200
void tj(char c[])
{
	int i,m=0;
	for(i=0;i<N;i++)
	{
		if(c[i]=='t'||c[i]=='T')
		{
			if(c[i-1]==' '||i==0||c[i-1]=='\n')
			{
				if(c[i+1]=='h'||c[i+1]=='H')
				{
					if(c[i+2]=='e'||c[i+2]=='E')
					{
						if(c[i+3]==' '||c[i+3]=='\n') m=m+1;
					}
				}
			}
		}
	}
	cout<<"这篇文章中的the的个数为:"<<m<<endl;
}
int main()
{
	char c[N]={0};
	int i;
	for(i=0;i<N;i++)
	{
		cin.get(c[i]);
		if(c[i-1]=='\n'&&c[i]=='\n') break;
	}
	tj(c);
	return 0;
}
15.#include<iostream>
using namespace std;
void xkh(char c[],int n)
{
	int i,j=0,m=0;
	for(i=0;i<n;i++)
	    if(c[i]=='(') j++;
	for(i=0;i<n;i++)
		if(c[i]==')') m++;
	if(j==m) cout<<"圆括号匹配。"<<endl;
	else cout<<"圆括号不匹配。"<<endl;
}
void zkh(char c[],int n)
{
	int i,j=0,m=0;
	for(i=0;i<n;i++)
	    if(c[i]=='[') j++;
	for(i=0;i<n;i++)
		if(c[i]==']') m++;
	if(j==m) cout<<"方括号匹配。"<<endl;
	else cout<<"方括号不匹配。"<<endl;
}
void dkh(char c[],int n)
{
	int i,j=0,m=0;
	for(i=0;i<n;i++)
	    if(c[i]=='{') j++;
	for(i=0;i<n;i++)
		if(c[i]=='}') m++;
	if(j==m) cout<<"花括号匹配。"<<endl;
	else cout<<"花括号不匹配。"<<endl;
}
int main()
{
	char c[30];
	int i,n;
	cout<<"请先输入您要输入的字符个数"<<endl;
	cin>>n;
	cout<<"请您开始输入字符串"<<endl;
	for(i=0;i<n;i++)
		cin>>c[i];
	xkh(c,n);
	zkh(c,n);
	dkh(c,n);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值