题述:
输入格式:
输入在一行中给出一个正整数N(1>=N>=9)
输出格式:
输出上三角N*N部分口诀表,其中等号右边数字占4位,左对齐。
输入样例:
6
输出样例:
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*4=4 2*4=8 3*4=12 4*4=16
1*3=3 2*3=6 3*3=9
1*2=2 2*2=4
1*1=1
思路:
可以观察每一次(或者说每一行)的右边的因子不变,而左因子递增,很明显就是个双重循环,外层循环不变,内层循环不断递增,限制条件是<=内层循环的变量
代码如下:
#include<stdio.h>
int main()
{
int i, j, N;
printf("请输入N\n");
scanf("%d", &N);
for (i = N; i > 0; i--)//列不变,并且递减
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d", j, i, i * j);
if (i * j >= 10)
{
printf(" ");//>=10就打印两个空格,按照格式输出
}
else
{
printf(" ");//<10就打印3个空格
}
}
printf("\n");//打印完一行就要换行
}
}