注册 登录
编程论坛 C语言论坛

打印图形

qazxsw321 发布于 2019-10-30 23:48, 1805 次点击
http://10.105.242.83/contest/1040/problem/F
#include <stdio.h>
#include <string.h>
int main()
{int i=1,j=1;
    int n;
    char a;
    char b[7]="triangle";
    char c[6]="diamond";
    scanf("%c %d",&a,&n);

    if(a==c[6])
    {
    for(i=0;i<n/2;i++)
    {    for(j=1;j<n/2-i+1;j++)
        {printf(" ");
        }
        for(j=1;j<=2*i+1;j++)
        {printf("*");
        }
        printf("\n");
    }
   
    for(i=n/2;i>-1;i--)
    {    for(j=1;j<n/2-i+1;j++)
        {printf(" ");
        }
        for(j=1;j<=2*i+1;j++)
        {printf("*");
        }
        printf("\n");
    }
    }
    if(a==b[7])
    {
        for (i=1;i<=(n-1)/2+1;i++)
    {
        for (j=1;j<=i*2-1;j++)
        {
            printf("*");
        }
            printf(" \n");
    }
   
    for (i=1;i<=(n-1)/2;i++)
    {
        for (j=1;j<=n-i*2;j++)
        {
            printf("*");
        }
            printf(" \n");
    }
    }
    return 0;
}
我不知道这个选择这么弄
3 回复
#2
rjsp2019-10-31 08:25
10.105.242.83 一看就知道是局域网地址
#3
自学的数学2019-10-31 14:37
原代码中  char b[7]="triangle";
          char c[6]="diamond";
太长了,改短点试试。
#4
Mr_doge2019-11-02 08:47
那啥,存储字符串的空间不够,长度为7的字符串,存储空间至少为8,把数组大小改长点,你可以改成长度+1,也可以随便预设个超大数组,反正只能大,不要小
至于选择,根据逻辑对比
第一个选择为数组c的第六个字符
第二个选择为数组b的第七个字符
如果不能理解,那么应该去书本讲解数组的章节好好看看
1