多组输入,一个整数(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;
}