关于 C 语言的一个问题,希望懂的可以回答一下(初学者拜谢)

2015-09-10 20:30:51 +08:00
 loveis0
int main (int argc, const char * argv[]) {
// for (int c = 0; c < 5; c++) {
// for (int n = 0; n < 3; n++) {
// printf (" ");
// }
// }
int count = 0;
for (int i = 1; i <= 9; i++) {
printf (" %c",count );
for (int j = 1; j <= i; j++) {
printf ("%c%i*%i=%i\t",count,j,i,i*j );
}
printf ("\n");
count++;
}
return 0;
}


代码在上面,但是敲了半天实在是琢磨不出来。

我想把 99 乘法表像以下这行代码这样实现出来,像一座山一样。

int main (int argc, const char * argv[]) {
// int count = 0;
for (int i = 0; i < 7; i++) {
for (int j=i; j < 7; j++) {
printf (" ");
}
for (int n=0; n <= i*2; n++) {
printf ("*");
}
printf ("\n");
// count++;
}
return 0;
}

因为我是初学者,所以搞不太懂哪里没做对,麻烦懂的人,亲切回答一下。。。
3892 次点击
所在节点    程序员
27 条回复
Tedko
2015-09-11 00:23:03 +08:00
知道 ascii 麽= =。。 c 里面类型,如果你用 int 填%c 的话会当做 ascii 处理吧。。。
http://www.jisuanke.com/course/2
loveis0
2015-09-11 00:25:42 +08:00
@Tedko 嘿嘿,不太清楚。。。对电脑技术很感兴趣,可编程确实是才学没多久。。。
Strikeactor
2015-09-11 02:01:15 +08:00
@loveis0 =_=逼我上图

观察这样一个结构,你可以把它当成一个每层定长的矩形来看,每层由有颜色的部分和两边的空白组成
由于尾部的空白不会影响前面的位置,不管它们,我们只需要让前面的空白把有颜色的部分挤到合适的位置(正中间)
所以只需要一个循环,每次输出一条长度刚刚好的 空白+颜色
第一次产生最底层,获得它的长度是 10 ,存起来,空白长度为 0 ,存起来
第二次产生倒数第二层,获得它的长度是 8 , 10-8=2 ,因为首尾各有一个空白所以这一层的空白增量是 2 的一半 1 ,加上上层的空白长度 0 ,这一层的空白长度为 1
第三次产生倒数第三层,获得它的长度是 6 , 8-6=2 ,因为首尾各有一个空白所以这一层的空白增量是 2 的一半 1 ,加上上层的空白长度 1 ,这一层的空白长度为 2
。。。
依次类推,空白数不断累加

到最后把储存结果的变量 print 出来就是个金字塔了,空格会把字顶到合适的位置
Tedko
2015-09-11 03:28:35 +08:00
@loveis0 https://en.wikipedia.org/wiki/ASCII
看不懂英文百度百科也行
gyao
2015-09-11 10:54:26 +08:00
#include <stdio.h>

int main (int argc, char *argv[]) {
for (int i = 1; i <= 9; i++) {
printf ("%.*s", 10 - i, "\t\t\t\t\t\t\t\t\t\t");
for (int j = 1; j <= i; j++) {
printf ("%d*%d=%d\t", j, i, i * j );
}
printf ("\n");
}
return 0;
}
loveis0
2015-09-12 12:49:51 +08:00
@Strikeactor 非常感谢前辈耐心打字并且告诉我实现的思路(ˉ﹃ ˉ),由于上课的原因抱歉拖到现在才来回复。辛苦前辈啦。♪٩(´ᵕ`๑)۶
loveis0
2015-09-12 12:52:02 +08:00
@Tedko 虽然不是看不懂英文,可这样密密麻麻的英文还真是看不懂。。。。。=。=。。。


@gyao 又一种思路 0.0 ,我去研究研究,谢谢前辈。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX