多组输入,一个整数(2~20)。
针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。
2
* * * * * * * * *
3
* * * * * * * * * * * * * * * *
4
* * * * * * * * * * * * * * * * * * * * * * * * *
#include <stdio.h> int main() { int n = 0; while((scanf("%d", &n)) != EOF) { for (int i = 0; i < n; i++) { for (int j = 0; j < n - i; j++) { printf(" "); } for (int k = i+1; k > 0; k--) { printf("* "); } printf("\n"); } for (int i = 0; i < n + 1; i++) { for (int j = i; j > 0 ; j--) { printf(" "); } for (int k = n + 1 -i; k > 0; k--) { printf("* "); } printf("\n"); } } return 0; }
int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 1; i <= n + 1; i++) { for (int j = 0; j < n + 1 - i; j++) { printf(" "); } for (int k = 0; k < i; k++) { printf("* "); } printf("\n"); } for (int i = 1; i <= n; i++) { for (int j = 0; j < i; j++) { printf(" "); } for (int k = n + 1 - i; k > 0 ; k--) { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int a = 0; while (scanf("%d", &a) != EOF) { //打印上半部分,假设多打印一行 for (int i = 0; i < a + 1; i++) { //a-i会随着i变化,当输入2时,第一行打印2-i格空格 for (int j = 0; j < a-i; j++) //打印一个空格 printf(" "); for (int j = 0; j <= i; j++) //打印*和空格 printf("* "); printf("\n"); //换行 } //打印下半部分 for (int i = 0; i < a; i++) { for (int j = 0; j <= i; j++) //第一行打印一个空格 printf(" "); //a-1-i会随着i变化,当输入2时,第一行打印2-i个“* ” for (int j = 0; j < a - i; j++) //打印一个空格 printf("* "); printf("\n"); //换行 } } return 0; }
/*思路 : 可以分成两个部分来看 上面是n行 下面是n+1行 for(j=0;j<n-i;j++) //如果这里要打印四个空格 4-0=4 三个空格4-1=3 两个空格4-2=2 for(j=0;j<=i;j++) //因为这里j都是每次从0开始的 //当i为0的时候打印零个 为1的时候打印一个 为2的时候打印两个 //...... //i随着变化而变化 for(j=0;j<i;j++) //打印空格 //当i为0的时候不打印 当i为1的时候打印一个空格 //当i为2的时候打印两个 ...... for(j=0;j<n+1-i;j++) //这里是因为是n+1行 所以要写成n+1 //这里是5的时候 i为0 就打印五个 //为4的时候 i为1 打印四个 //为3的时候 i为2 打印三个 //...... */ # include <stdio.h> int main () { int n = 0; while(scanf("%d",&n)!=EOF) { int i = 0; for(i = 0; i<n; i++) { //上半部分 int j = 0; //先打印空格 for(j=0;j<n-i;j++) //如果这里要打印四个空格 4-0=4 三个空格4-1=3 两个空格4-2=2 //...... { printf(" "); } //接下来打印 空格+星号 for(j=0;j<=i;j++) //因为这里j都是每次从0开始的 //当i为0的时候打印零个 为1的时候打印一个 为2的时候打印两个 //...... //i随着变化而变化 { printf("* "); } printf("\n"); } //下半部分 //n+1 行 //依旧是有空格加型号组成的 for(i=0;i<n+1;i++) { int j = 0; for(j=0;j<i;j++) //打印空格 //当i为0的时候不打印 当i为1的时候打印一个空格 //当i为2的时候打印两个 ...... { printf(" "); } for(j=0;j<n+1-i;j++) //这里是因为是n+1行 所以要写成n+1 //这里是5的时候 i为0 就打印五个 //为4的时候 i为1 打印四个 //为3的时候 i为2 打印三个 //...... { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int n; scanf("%d",&n); int ret=n; int count=1; int num=n; int src=1; for (int i=0; i<n; i++) { for (int j=ret; j>0; j--) { printf(" "); } for (int i=0; i<count; i++) { printf("* "); } count++; printf("\n"); ret--; } for (int i=0; i<n+1; i++) { printf("* "); } printf("\n"); for (int i=0; i<n; i++) { for (int j=src; j>0; j--) { printf(" "); } for (int i=0; i<num ; i++) { printf("* "); } num--; printf("\n"); src++; } return 0; }为啥自测输入打出来的都对就是一直提示不通过
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int n = 0; int i = 0; int j = 0; while (scanf("%d", &n) != EOF) { //输出上三角与中线 for (i = 0; i < n + 1; i++) { //输出前面空格 for(j = 0; j < n - i; j++) { printf(" "); } //输出后面图案 for(j = 0; j < i + 1; j++) { printf("* "); } //换行准备输出下一行 printf("\n"); } //输出下三角 for(i = 0; i < n; i++) { //输出前面空格 for(j = 0; j < i + 1; j++) { printf(" "); } //输出后面图案 for(j = 0; j < n - i; j++) { printf("* "); } //换行准备输出下一行 printf("\n"); } } return 0; }
#include <stdio.h> int main() { int n = 0; while (scanf("%d", &n) != EOF) { //将菱形分成两部分 上部n+1行打印 for (int i = 0; i < n + 1; i++) { for (int j = 0; j < n - i; j ++) { printf(" "); } for (int j = 0; j <= i ; j++) { printf("* "); } printf("\n"); } //下部n行打印 for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { printf(" "); } for (int j = 0; j < n - i; j++) { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int n = 0; while(scanf("%d",&n)!=EOF) { for(int i = 0;i<n+1;i++) { int b = n; for(int j = b;j>i;j--) { printf(" ");//一个空格 } for(int k = 0;k<=i;k++) { printf("* "); } printf("\n"); } for(int i=0;i<n;i++) { int b = n; for(int j=0;j<=i;j++) { printf(" ");//一个空格 } for(int j=b;j>i;j--) { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int n; while(scanf("%d ",&n) != EOF) { int i; for(i = 1;i <= n;i++) { //上半部分行的控制 int j; for(j = 1;j <= n+1-i;j++) { printf(" "); } j = 1; for(j = 1;j<=i;j++) { printf("* "); } printf("\n"); } int k; for(k = 1;k <= n+1;k++) { printf("* "); } printf("\n"); for(i = 1;i <= n;i++) { //下半部分行的控制 int j; for(j = 1;j<=i;j++) { printf(" "); } j = 1; for(j = 1;j <= n+1-i;j++) { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int n=0; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n+1;i++) { for(int j=0;j<n-i;j++) { printf(" "); } for(int k=0;k<=i;k++) { printf("* "); } printf("\n"); } for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { printf(" "); } for(int k=i;k<n;k++) { printf("* "); } printf("\n"); } } return 0; }
#include <stdio.h> int main() { int a; while (scanf("%d", &a) != EOF) { // 正三角 for (int i = 0; i < a; i++) { // 一行输出a个符号包括:空格和* for (int j = 0; j <= a; j++) { // 外部循环条件控制内部循环条件 // 寻找它们之间的关系 if (j < a - i) { printf(" "); } else { printf("* "); } } printf("\n"); } // 中间部分 for (int i = 0; i <= a; i++) { printf("* "); } printf("\n"); // 倒三角 for (int i = 0; i < a; i++) { // 一行输出a个符号包括:空格和* for (int j = 0; j <= a; j++) { // 外部循环条件控制内部循环条件 // 寻找它们之间的关系 if (j <= i) { printf(" "); } else { printf("* "); } } printf("\n"); } } return 0; }