7-99 打印九九口诀表 (15 分)
下面是一个完整的下三角九九口诀表:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
16=6 26=12 36=18 46=24 56=30 66=36
17=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,输出从11到N*N的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
结尾无空行
输出样例:
11=1
12=2 22=4
13=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;
}