excise2

1.转义字符\t在使用时占几个空格?并回答当使用printf输出时要想\t占三个空格其前面字符应该占几位?

令num=|n-8|%8
n表示\t前面的字符占的位置(前面的字符也可能是转换说明,如%d,%10d等)
\t对应的空格的个数spaceNum,有
spacenum={num, num!=08,   num=0

在这里插入图片描述

2.strcmp 函数有几种返回值?并回答其具体实现原理。并编写一个简单的使用strcmp函数的c/c++代码。

格式: strcmp(字符数组名1,字符数组名2)
功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。
字符串1=字符串2,返回值=0;
字符串2〉字符串2,返回值〉0;
字符串1〈字符串2,返回值〈0。

本函数也可用于比较两个字符串常量,或比较数组和字符串常量。

#include<iostream>
using namespace std;
int main(){
	int Strcmp( char * p1, char * p2);
	char s1[100];
	char s2[100];
	cout<<"请输入第一个字符s1:\n";
	cin>>s1;
	cout<<"\n请输入第二个字符s2:\n";
	cin>>s2; 
	int r;
	r=Strcmp(s1,s2);
	cout<<"\n\n"<<s1;
	if(r==0){
		cout<<" = ";
	}else if(r>0){
		cout<<" > "; 
	}else if(r<0){
		cout<<" < ";
	} 
	cout<<s2<<"\n"<<endl;
	cout<<""<<r<<"\n"<<endl;
	return 0;
}

int Strcmp( char *p1 ,char * p2){
	char k;
	int i=0;
	int r;
	while(1){
		if(*(p1+i)!=*(p2+i)){
			r=int(*(p1+i))-int(*(p2+i));
			return(r);
			break;
		}
		i++;
	}
}

3.N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)

#include <iostream>
using namespace std;

int main()
{
	int a[100];
	int m, n;
	

	cout << "请输入总人数n: \n";
	cin >> n;
	cout << "请输入报到m出圈的m值: \n";
	cin >> m;

	for (int i = 0; i < n; i++)   // 初始化为1
	{
		a[i] = 1;            //a[i]=1代表游戏中
	}

	int k = n; //结束条件
	int c = 0; //数数
	int i = 0;

	while (k > 1)
	{
		if (a[i] != 0) //没出局的时候
		{
			c++;
		}
		if (c == m) //出局
		{
			c = 0;
			a[i] = 0;			
			k--;
			cout << i + 1 << "出局" << endl;
		}
		i++;
		if (i == n) //i到数组尾,循环继续报数
		{
			i = 0;
		}
	}

	for (i = 0; i < n; i++)
	{
		if (a[i] == 1)
		{
			cout << i + 1 << "胜利" << endl;
		}
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值