读书人

关于循环构造

发布时间: 2013-01-04 10:04:17 作者: rapoo

关于循环结构
我想输出以下乘法法则,要怎么做?
9*9=81
8*8=64 8*9=72
7*7=49 7*8=56 7*9=63
.......
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5.......... 1*9=9

[解决办法]


#include <stdio.h>
#include <string.h>
int main() {
int a,b;
char s[73],t[10];

for (a=9;a>0;a--) {
s[0]=0;
for (b=a;b<10;b++) {
sprintf(t," %dx%d=%d",a,b,a*b);
if (a==2 && b==5) strcat(s," ");
strcat(s,t);
if (a==1 && b>=4) strcat(s," ");
}
printf("%60s\n",s);
}
return 0;
}
// 9x9=81
// 8x8=64 8x9=72
// 7x7=49 7x8=56 7x9=63
// 6x6=36 6x7=42 6x8=48 6x9=54


// 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
// 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
// 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
// 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
// 1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9


[解决办法]
引用:
引用:C/C++ code?1234567for (int i=9; i>0; i--){ printf("%\*s", 7*(i-1), ""); for (int j=i; j<=9; j++) printf("%d*%d=%2d ", i, j, i*j); printf("\n");}
测试……

The width and precision formatting parameters may be omitted, or they can be a fixed number embedded in the format string, or passed as another function argument when indicated by an asterisk "*" in the format string. For example printf("%*d", 5, 10) will result in " 10" being printed, with a total width of 5 characters, and printf("%.*s", 3, "abcdef") will result in "abc" being printed.
http://en.wikipedia.org/wiki/Printf_format_string

读书人网 >C语言

热点推荐