2017: 九九乘法表
时间限制: 1 Sec 内存限制: 64 MB
提交: 77 解决: 36
您该题的状态:已完成
[提交][状态][讨论版]
题目描述
小时候学过的九九乘法表也许将会扎根于我们一生的记忆,现在让我们重温那些温暖的记忆,请编程输出九九乘法表.
现在要求你输出它的格式与平常的 不同啊! 是那种反过来的三角形啦,具体如下图:
每两个式子之前用一个空格 隔开。。。
输入
第一有一个整数N,表示有N组数据(N<10) 接下来由N行,每行只有一个整数M(1<=M<=9);
输出
对应每个整数M,根据要求输出乘法表的前N行,具体格式参见输入输出样例和上图. 每两组测试数据结果之间有一个空行隔开,具体如输出样例。
样例输入
3
2
1
5
样例输出
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
第一种方法
#include<stdio.h>
#include<string.h>
int main() {
int N;
scanf("%d",&N);
while(N--) {
char s[100];
int i,m,n;
scanf("%d",&m);
n=m;
for(i=1; i<=m; i++) {
n=i;//注意先对n赋值
switch(n) {
case 1 :
strcpy(s, "1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9");
break;
case 2:
strcpy(s, "2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18");
break;
case 3:
strcpy(s, "3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27");
break;
case 4:
strcpy(s, "4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36");
break;
case 5:
strcpy(s, "5*5=25 5*6=30 5*7=35 5*8=40 5*9=45");
break;
case 6:
strcpy(s, "6*6=36 6*7=42 6*8=48 6*9=54");
break;
case 7:
strcpy(s, "7*7=49 7*8=56 7*9=63");
break;
case 8:
strcpy(s, "8*8=64 8*9=72");
break;
case 9:
strcpy(s, "9*9=81");
break;
}
printf("%s\n",s);
}
printf("\n");
}
}
第二种方法
#include<stdio.h>
int main() {
int N;
scanf("%d",&N);
while(N--) {
int a, b,n;
scanf("%d",&n);
for (a = 1; a <= n; a++) {
for (b = a; b <= 9; b++) {
printf("%d*%d=%d ", a, b, a*b);
}
printf("\n");
}
printf("\n");
}
return 0;
}