c语言,才疏学浅没有思路

c语言初学者,没有思路,帮忙看看?比较急,下午要讲,求指点,感激不尽!

img

供参考:

#include <stdio.h>
void print_pattern1(int n)
{
    int  i, j;
    char ch = 'a';
    printf("Pattern I\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0, ch = 'a'; j <= i; j++)
            printf("%-2c", ch++);
        printf("\n");
    }
}
void print_pattern2(int n)
{
    int  i, j;
    char ch = 'a';
    printf("Pattern II\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0, ch = 'a'; j < n - i; j++)
            printf("%-2c", ch++);
        printf("\n");
    }
}
void print_pattern3(int n)
{
    int  i, j;
    char ch;
    printf("Pattern III\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n - i - 1; j++)
            printf("  ");
        for (j = 0, ch = 'a' + i; j <= i; j++)
            printf("%-2c", ch--);
        printf("\n");
    }
}
void print_pattern4(int n)
{
    int  i, j;
    char ch = 'a';
    printf("Pattern IV\n");
    for (i = 0; i < n; i++)
    {
        for (j = 0, ch = 'a' + n - 1 - i; j < n - i; j++)
            printf("%-2c", ch--);
        printf("\n");
    }
}
int main()
{
    int ch = 1, n;
    while (ch) {
        printf("Which pattern would you like to print?\n");
        printf("--------------------------------------\n");
        scanf("%d", &ch);
        switch (ch) {
        case 1:printf("input line n:"); scanf("%d", &n); print_pattern1(n); break;
        case 2:printf("input line n:"); scanf("%d", &n); print_pattern2(n); break;
        case 3:printf("input line n:"); scanf("%d", &n); print_pattern3(n); break;
        case 4:printf("input line n:"); scanf("%d", &n); print_pattern4(n); break;
        case 5:ch = 0; break;
        default:break;
        }
    }
    return 0;
}

p的单双数控制位置,n负责行数。先判断单双再循环打印。急的话悬赏吧,很多人帮你解决的

上面第一个跟下面的没有关系,上面的你可以按照画图的方式一样输出,
下面的用一个循环先判断怎么样的输出模式,再循环输出多少行

供参考,谢谢!

img

img

#include <stdio.h>
#include <stdlib.h>

void menu()
{
    printf("_____________________________________________\n\n");
    printf("请选择下面输出样式的对应数字编号\n");
    printf("\n_____________________________________________\n\n");
    printf("1. a        2. a b c     3.  a     4. c b a");
    puts("");
    printf("   a b         a b         b a        b a");
    puts("");
    printf("   a b c       a         c b a        a");
    puts("\n");
    printf("5.Quit\n\n");
}

void func1(int n)
{
    int c = 'a', cc = 'a';
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            printf("%c ", c++);
        }
        c = cc;
        puts("");
    }
}

void func2(int n)
{
    int c = 'a', cc = 'a';
    for (int i = 0; i < n; i++)
    {
        for (int j = n - 1 - i; j >= 0; j--)
        {
            printf("%c ", c++);
        }
        c = cc;
        puts("");
    }
}

void func3(int n)
{
    int w = 2 * n - 1;
    int c = 'a', cc = 'a';

    for (int i = 0; i < n; i++)
    {
        c = cc + i;
        for (int j = 0; j <= i; j++)
        {
            if (j == 0)
                printf("%*c ", w - i * 2, c--);
            else
                printf("%c ", c--);
        }
        puts("");
    }
}

void func4(int n)
{
    int c = 'a' + n - 1, cc = c;
    for (int i = 0; i < n; i++)
    {
        c = cc - i;
        for (int j = n - i - 1; j >= 0; j--)
        {
            printf("%c ", c--);
        }
        puts("");
    }
}

int main(int argc, char *argv[])
{
    menu();
    int n = 0, m = 0;
    printf("Pattern:");
    scanf("%d", &m);

    printf("n:");
    while (n < 1 || n > 26)
        scanf("%d", &n);
    switch (m)
    {
    case 1:
        func1(n);
        break;

    case 2:
        func2(n);
        break;

    case 3:
        func3(n);
        break;

    case 4:
        func4(n);
        break;

    case 5:
        return 0;

    default:
        exit(-1);
    }
    return 0;
}


#include <stdio.h>
void printA(int n) {
    for (int i = 0; i < n; i++) {
        char c = 'a';
        for (int j = 0; j <= i; j++) {
            printf("%c ", c);
            c++;
        }
        printf("\n");
    }
}

void printB(int n) {
    for (int i = n - 1; i >= 0; i--) {
        char c = 'a';
        for (int j = 0; j <= i; j++) {
            printf("%c ", c);
            c++;
        }
        printf("\n");
    }
}
void printC(int n) {
   for (int i = 0; i < n; i++) {
        char c = 'a'+i;
        for (int x = 1; x < n-i; x++) {
            printf("  ");
        }
        for (int j = 0; j <= i; j++) {
            printf("%c ", c);
            c--;
        }
        printf("\n");
    }
}
void printD(int n) {
    for (int i = n - 1; i >= 0; i--) {
        char c = 'a'+i;
        for (int j = 0; j <= i; j++) {
            printf("%c ", c);
            c--;
        }
        printf("\n");
    }
}
int main() {
    int pattern = 1, n;
    int d =1;
    while (d==1) {
        printf("Which pattern would you like to print?\n");
        printf("-------------------------------------------------\n");
        printf("1.a        2.a b c    3.    a    4.c b a \n");
        printf("  a b        a b          b a      b a   \n");
        printf("  a b c      a          c b a      a     \n");
        printf("\n5.Quit\n\n");
        printf("-------------------------------------------------\n");
        printf("Pattern==>:");
        scanf("%d", &pattern);
        printf("n==>:");
        scanf("%d", &n);
        printf("\n");
        switch (pattern) {
        case 1:
            printf("PatternI\n");
            printA(n);
            break;
        case 2:
            printf("PatternII\n");
            printB(n);
            break;
        case 3:
            printf("PatternIII\n");
            printC(n);
            break;
        case 4:
            printf("PatternIV\n");
            printD(n);
            break;
        case 5:
            return 0;
        }
        printf("\n1继续,0退出\n");
        scanf("%d", &d);
    }

    return 0;
}