今天遇到了神仙题目(目前还没完全理解)
1.第一题
菱形的最详细理解(再一次练习)
(1.)上半部分截图
下半部分截图
2.第二题
空心菱形上半部分
下半部分
3.在有了这两题的理解之下(今天的我尝试了一下)
#include<stdio.h> int main() { int i, j, k, l, m, n; scanf("%d", &n); for (i = 1; i <= n; i++) printf("*"); printf("\n"); for (i = 1; i <= (n - 1) / 2; i++) { for (j = 1; j <= (n + 1) / 2 - i; j++) { printf("*"); } for (k = 1; k <= i; k++) { printf(" "); } for (k = 1; k <= i - 1; k++) { printf(" "); } for (j = 1; j <= (n + 1) / 2 - i; j++) { printf("*"); } printf("\n"); } for (i = 1; i <= (n - 1) / 2 - 1; i++) { for (j = 1; j <= i + 1; j++) { printf("*"); } for (k = 1; k <= (n + 1) / 2 - (j - 1); k++) { printf(" "); } for (k = 1; k <= (n - 1) / 2 - (j - 1); k++) { printf(" "); } for (j = 1; j <= i + 1; j++) { printf("*"); } printf("\n"); } for (i = 1; i <= n; i++) { printf("*"); } return 0; }
目前没理解透彻,明天咱继续
4.第四题数字菱形的打印(这个不难)
#include<stdio.h> int main() { int n, i, j, k, m; scanf("%d",&n); for (i = 1; i <= n; i++)//这边一般都是看自己的习惯(习惯从0开始就写1,习惯从1开始就写1),反正行数不会变就行(但是从0或者从1开始就会导致后面的循环次数会变,所以这边要看自己) { for (j = 1; j <= n - i; j++) printf(" "); for (k = 1; k <= i; k++) printf("%d",k); for (m = i - 1; m >= 1; m--) printf("%d",m); printf("\n"); } for (i = 1; i <= n-1; i++) { for (j = 1; j <= i; j++) printf(" "); for (k = 1; k <= n - i; k++) printf("%d",k); for (m = n - i - 1; m >= 1; m--) printf("%d",m); printf("\n"); } return 0; }