本文共 1045 字,大约阅读时间需要 3 分钟。
思考过程:我第一次看到这道题时,我脑海中出现两个关键词 for 和 数字 ,出现 for 的原因是以上图案出现太多重复内容,1.可以用printf一行一行打印 但是这样太蠢 2.使用循环快速就解决。
怎么使用for 分析!! 以上图形 又有了两个部分上三角和下三角,三个变量 行数 空格 * 重复出现。所以首先在本子上 写出 三者关系以及数量变化过程行数 | 空格 和 * |
---|---|
1 | 4 1 |
2 | 3 3 |
3 | 2 5 |
4 | 1 7 |
行数和空格变化相反 满足2n-1;
这道题也可以加深难度 可以自定图形大小,简单的变量引用变化,此处不讨论int i, j, k; //正三角 for (i = 1; i <= 5; i++){ for (k = 1; k <= 5 - i; k++){ printf(" "); } for (j = 1; j <= 2 * i - 1; j++){ printf("*"); } printf("\n"); } //倒三角 for (i = 4; i >= 1; i--){ for (k = 1; k <= 5 - i; k++){ printf(" "); } for (j = 1; j <= 2 * i - 1; j++){ printf("*"); } printf("\n"); }
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
这道题纯粹的数学公式变化成计算机语言 153=1^3 + 5^3 +3^3;变成计算机语言 然后加上循环int n; int f1, f2, f3; int max; for (n = 0; n <= 999; n++){ max = pow((n % 10), 3) + pow(((n / 10) % 10), 3) + pow(((n / 100)), 3); //此处可以变成条件写入if中 但为了更加直观 if (n == max){ printf("%d\n", n); } }
C语言入门阶段最应该加强基础训练,训练逻辑思维,以及改变以往的思考方式,如何将字面内容转变为你子脑海中的抽象函数,然后将其转变成用C语言或其它 编程语言实现。
转载地址:http://kkza.baihongyu.com/