返回顶部

上机练习十四

导航:复试上机历年真题,题目未搜集全
十四:2003 十三:2004
十二:2005 十一:2006
十:2007 九:2008
八:2009 七:2012
六:2013 五:2014
四:2015 三:2017
二:2018 一:2019

github汇总链接

十四、2003

1、字符串统计连续整数

题目:
输入一个字符串,内有数字和非数字字符。如 A123X456Y7A,302ATB567BC,打印字符串中所有连续(指不含非数字字符)的数字所组成的整数,并统计共有多少个整数

代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;

//1. 输入一个字符串,内有数字和非数字字符。如 A123X456Y7A,302ATB567BC,
//打印字符串中所有连续(指不含非数字字符)的数字所组成的整数,并统计共有
//多少个整数。


const int maxn = 100;


bool isNumber(char ch)
{
	if(ch<='9'&&ch>='0')
		return true;
	else 
		return false;
}

char a[maxn][maxn];//用二维数组统计 
int row=0, col=0;


int main()
{
	char str[maxn];
	int i, j, len;
	gets(str);
	
	len = strlen(str);
	memset(a, 0, maxn*maxn);
	
	for(i=0;i<len;i++)//逐个判断 
	{
		while(i<len&&isNumber(str[i])==true)//如果是数字则放在二维数组中 
			a[row][col++] = str[i++];
		row++;
		col = 0; 
	}
	
	for(i=0;i<row;i++)
		if(strlen(a[i])>0)//打印数字 
		{
			for(j=0;j<strlen(a[i]);j++)
				printf("%c", a[i][j]);	
			printf("\n");
		}
		
	return 0;
}

2、分糖果

题目:
甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、丁也照此办理,此时甲、乙、丙、丁四人各有 16 块,编程求出四个人开始各有糖多少块。

逆推即可

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

 
 
//甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们
//三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、
//丁也照此办理,此时甲、乙、丙、丁四人各有 16 块,编程求出四个人开始各有
//糖多少块



int main()
{
	int sums, i, j;
	int a[4];
	fill(a, a+4, 16);//最后每个人都有16块糖果 
	
	for(i=3;i>=0;i--)
	{
		sums = 0;
		for(j=0;j<4;j++)
		{
			if(j!=i)//分别找到另外三个人,糖果减半 
			{
				sums += a[j] / 2;
				a[j] /= 2;
			}
		}
		a[i] += sums;
	 } 
	 
	 
	for(i=0;i<4;i++)
		printf("%d ", a[i]); 
	
	return 0;
 } 

3、汇总链接

github汇总链接

posted on 2020-04-18 19:08  weilanhanf  阅读(528)  评论(0编辑  收藏  举报

导航