C 语言教程 在线

1735c-exercise-example23

参考方法:

#include <stdio.h>
#define MAX 10
int main()
{
    int i, j;
    int ctl = 0;
    if(MAX % 2 != 0)
        ctl = MAX + 1;
    else
        ctl = MAX;
    for(i = 1; i <= MAX; i++)
    {
        for(j = 1; j <= MAX; j++)
        {
            if(i <= ctl/2)
            {
                if(j > ctl/2 - i && j < ctl/2 + i)
                    printf("*");
                else
                    printf(" ");
            }
            else
            {
                if(j > i - ctl/2 && j < ctl/2 + ctl - i)
                    printf("*");
                else
                    printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}

1734c-exercise-example23

参考方法:

#include <stdio.h>

int main()
{
    int i=1,j;
    for(j=5;j>1;j--)
    {
        while(i<j)
        {
           printf(" ");
           i++;
        }
        int k=1;
        while(k<10-2*j)
        {
            printf("*");
            k++;
        }
        while(i>0)
        {
           printf(" ");
           i--;
        }
        printf("\n");
    }
    for(j=1;j<5;j++)
    {
        while(i<j)
        {
           printf(" ");
           i++;
        }
        int k=1;
        while(k<10-2*j)
        {
            printf("*");
            k++;
        }
        while(i>0)
        {
           printf(" ");
           i--;
        }
        printf("\n");
    }
    return 0;
}

1733c-exercise-example23

参考方法:

#include <stdio.h>

int main()
{
        int i,j,k,stars,spaces;
        for(i=1;i<8;i++)
        {
                if(i<5)
                {
                        stars=i*2-1;
                        spaces=4-i;
                }else{
                        stars=7-(i-4)*2;
                        spaces=i-4;
                }
                for(k=1;k<=spaces;k++)
                {
                        printf(" ");
                }
                for(k=1;k<=stars;k++)
                {
                        printf("*");
                }
                printf("\n");
        }
        return 0;
}

1732c-exercise-example23

参考解法:

#include <stdio.h>

int main()
{
    int i, j, space_num = 3, start_num = 1;
    for ( i = 1; i <= 7; i++ )
    {
        for ( j = space_num; j > 0; j-- )
            printf( " " );
        for ( j = start_num; j > 0; j-- )
            printf( "*" );
        if ( i > 7 / 2 )
        {
            space_num++;
            start_num -= 2;
        } else {
            space_num--;
            start_num += 2;
        }
        printf( "\n" );
    }
    return(0);
}

1731c-exercise-example22

参考方法:

/******************************

两个乒乓球队进行比赛,各出三人。
甲队为A,B,C三人,乙队为X,Y,Z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单
.A说他不和X比,C说他不和X,Z比,请编程序找出三队赛手的名单。

*********************************/

#include <stdio.h>
#pragma warning(disable:4996)

int main()
{
    char a,b,c;
    int i,j;
    int n = 0;

    for(i=0;i<3;++i)
    {
        a = 'x'+i;//A的位置,I是相对于X的偏移量
        for(j=1;j<3;++j)
        {
            b = 'x'+(i+j)%3;//B相对与A的位置,(I+J)%3为偏移量
            c = 'x'+3-(i+j)%3-i;//C的位置 要 减去两个偏移量 
            if(a!='x'&&c!='x'&&c!='z')
            {
                printf("a--%c,b--%c,c--%c\n",a,b,c);
                n = 1;
                break;
            }
        }
        if(n == 1) break;
    }
    
    system("pause");
}