习题2-1 水鲜花数
输出100~999中的所有水仙花数。若3位数ABC满足 ABC=A*3 + B*3 +C*3,则称其为水鲜花数。例如 153 = 1^3 +5^3 +3^3,所以153是水仙花数。
代码实现:
# include <stdio.h>
int main(void)
{
for (int i=100;i<=999;i++)
{
int ge;
int shi;
int bai;
ge = i / 100;
shi = i % 100 / 10;
bai = i % 100 % 10;
if (i == ge*ge*ge + shi*shi*shi + bai*bai*bai)
printf(" %d",i);
}
return 0;
}
习题2-3 倒三角
输入正整数n<=20,输出一个n层的倒三角形。例如,n=5时输出如下:
代码实现:
#include <stdio.h>
int main()
{
int i,j,k,n;
scanf("%d",&n);
if(n>0&&n<=20)
{
for(i = n;i > 0;i--) // n为组成三角形的行数
{
for(k = 0;k < n - i;k++) // 打印前导空格,空格数分别为0,1,2,3,......
{
printf(" ");
}
for(j = 0;j <2 * i - 1;j++) // 因为i = n,n - 1,n - 2,... 2,1,0,故打印*数也是这么多。
{
printf("*");
}
printf("\n");
}
}
return 0;
}
小结:
1.自己能够写出规律,但是刚刚一开始写的程序有错误,只是想到了空格 和 * 号,但是却把他们放在一个for里实现;导致出错;
2.自己能够分清是用两个for循环,一个控制行数,一个控制每行的符号输出打印
3.在控制输出是用for来控制的,而不是在printf里就能实现!!起初是这样写的:printf(“#”,2*i-1)//这样写就gg了,题目算是比较简单的,自己做得题目太少了,还得多练啊!!