中M2021春C、Java入门练习第I段——变量、表达式、分支、循环99-105

7-99 打印九九口诀表 (15 分)
下面是一个完整的下三角九九口诀表:

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
1
6=6 26=12 36=18 46=24 56=30 66=36
1
7=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81
本题要求对任意给定的一位正整数N,输出从1
1到N*N的部分口诀表。

输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:
4
结尾无空行
输出样例:
11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
结尾无空行

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	int i,j;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf("%d*%d=%-4d",j,i,i*j);
		}
		printf("\n");
	}
	return 0;
}

7-100 逆序的三位数 (10 分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:
每个测试是一个3位的正整数。

输出格式:
输出按位逆序的数。

输入样例:
123
结尾无空行
输出样例:
321
结尾无空行

#include<stdio.h>
int main()
{	
	int x=0,a=0,b=0,c=0,y=0;
	scanf("%d",&x);
	a=x/100;
	c=x%10;
	b=x/10%10;
	y=a+b*10+c*100;
	printf("%d",y);
	return 0;
}

7-101 人民币兑换 (15 分)
1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。请编写程序给出各种兑换方案。

输入格式:
输入为一个正整数n,表示要求输出前n种可能的方案。方案的顺序,是按照5分硬币从少到多排列的。

输出格式:
显示前n种方案中5分、2分、1分硬币各多少枚。每行显示一种方案,数字之间空一格,最后一个数字后没有空格。

注意:如果全部方案不到n种,就顺序输出全部可能的方案。

输入样例:
5
结尾无空行
输出样例:
1 46 53
2 42 56
3 38 59
4 34 62
5 30 65
结尾无空行

#include<stdio.h>
int main()
{
	int n,c=0;
	scanf("%d",&n);
	int i,j,k;
	int s;

	for(i=1;i<=30;i++)
	{
		if(c<n)
		{
		for(j=1;j<=75;j++)
		{
			for(k=1;k<=99;k++)
			{
				s=i*5+j*2+k*1;
				if(s==150&&(i+j+k)==100)
				{
					c++;
					printf("%d %d %d\n",i,j,k);
					break;
				}
			}
		}	
		}
		
	}
	return 0;
}

7-102 大笨钟 (10 分)
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。不过由于笨钟自己作息也不是很规律,所以敲钟并不定时。一般敲钟的点数是根据敲钟时间而定的,如果正好在某个整点敲,那么“当”数就等于那个整点数;如果过了整点,就敲下一个整点数。另外,虽然一天有24小时,钟却是只在后半天敲1~12下。例如在23:00敲钟,就是“当当当当当当当当当当当”,而到了23:01就会是“当当当当当当当当当当当当”。在午夜00:00到中午12:00期间(端点时间包括在内),笨钟是不敲的。

下面就请你写个程序,根据当前时间替大笨钟敲钟。

输入格式:
输入第一行按照hh:mm的格式给出当前时间。其中hh是小时,在00到23之间;mm是分钟,在00到59之间。

输出格式:
根据当前时间替大笨钟敲钟,即在一行中输出相应数量个Dang。如果不是敲钟期,则输出:

Only hh:mm. Too early to Dang.
其中hh:mm是输入的时间。

输入样例1:
19:05
结尾无空行
输出样例1:
DangDangDangDangDangDangDangDang
结尾无空行
输入样例2:
07:05
输出样例2:
Only 07:05. Too early to Dang.

#include<stdio.h>
int main()
{
	int h,m,i;
	scanf("%d:%d",&h,&m);
	if(h>=0&&h<11||h==12&&m==0)
	{
		printf("Only %02d:%02d.  Too early to Dang.",h,m);
	}
	else 
	{
		
		if(m==0)
		{
			for(i=0;i<h-12;i++)
			{
				printf("Dang");
			}
		}
		if(m!=0)
		{
			for(i=0;i<h+1-12;i++)
			{
				printf("Dang");
			}
		}
	}
	return 0;
}

7-103 A除以B (10 分)
真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。

输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。

输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。

输入样例1:
-1 2
结尾无空行
输出样例1:
-1/2=-0.50
结尾无空行
输入样例2:
1 -3
输出样例2:
1/(-3)=-0.33
输入样例3:
5 0
输出样例3:
5/0=Error`

#include<stdio.h>
int main()
{	
	int a,b;
	scanf("%d %d",&a,&b);
	if(b>0)
	{
		printf("%d/%d=%.2f",a,b,1.0*a/b);
	}
	if(b<0)
	{
		printf("%d/(%d)=%.2f",a,b,1.0*a/b);
	}
	if(b==0)
	{
		printf("%d/%d=Error",a,b);
	}
	return 0;
}

7-104 新世界 (5 分)
这道超级简单的题目没有任何输入。

你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。

#include<stdio.h>
int main()
{	
	
	
	printf("Hello World\nHello New World");

	return 0;
}

7-105 寻找250 (10 分)

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。

输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。

输出格式:
在一行中输出第一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。题目保证输出的数字在整型范围内。

输入样例:
888 666 123 -233 250 13 250 -222
结尾无空行
输出样例:
5
结尾无空行

#include<stdio.h>
int main()
{
	int x,i=0;
	while(scanf("%d",&x)!=EOF)
	{
		i++;
		if(x==250)
		{
			break;
		}
		
	}
	printf("%d",i);
	return 0;
}
上一篇:【谜客帝国】第144届猫De梦年度收官谜会(2018.12.30)


下一篇:不同的数且找出下标