用C语言编程,不要有多余的输入输出,↙代表换行 1.输出三位数 将数字

1~ 9 分成 3 个三位数,要求第 2 个三位数是第1个三位数的两倍,第3个三位数是第1个的三倍。即假定m为第 1个三位数,则第2个恰好为2*m, 第3个为 3*m,请输出这几个三位数。
输入:2↙
输出:219,438,657↙
273,546,819↙

2.插入字符串并输出
输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置后面插入字符串 s2 并输出。
输入:beijing↙
123↙
i↙
输出:bei123jing↙

3.打印大写字母三角形(20分)
题目内容:
输入行数和起始字母,输出大写字母等腰三角形。输出的字母是循环的,即递增到字母 'Z' 以后输出 'A' ;递减到字母 'A' 以后输出 'Z'。
输入:4空格X↙
输出:空格空格空格X↙
空格空格YZY↙
空格ZABAZ↙
ABCDCBA↙
问题已经解决,很感谢有人回答

#include <stdio.h>

int is_same(int x, int y);

int main()
{
    int j=0, k=0;
    int x=0;
    int n = 0;
    int a=0, b=0, c=0;
    int ge,shi,bai;

    scanf("%d",&n);
    for(j=1; j<=9; j++)
    {
        for(k=1; k<=9; k++)
        {
            if(j==n || k==j || n==k)
                continue;
            a = n*100 + j*10 + k;
            for(x=200; x<1000; x++)
            {
                ge = x%10;
                shi = (x/10)%10;
                bai = x/100;
                if(ge==n || ge==j || ge==k)
                    continue;
                if(shi==n || shi==j || shi==k)
                    continue;
                if(bai==n || bai==j || bai==k)
                    continue;
                if(bai==ge || bai==shi || shi==ge)
                    continue;

                if(x == a*2)
                    b = x;
                if(x == a*3)
                    c = x;
            }
            if(b==a*2 && c==a*3)
            {
                if(!is_same(b,c))
                {
                    printf("%d,%d,%d\n",a,b,c);
                }
            }
        }
    }

    return 0;
}

int is_same(int x, int y)
{
    int x_bai,x_shi,x_ge;
    int y_bai,y_shi,y_ge;
    x_ge = x%10;
    x_shi = (x/10)%10;
    x_bai = x/100;
    y_ge = y%10;
    y_shi = (y/10)%10;
    y_bai = y/100;

    if(x_ge==y_ge || x_ge==y_shi || x_ge==y_bai)
    {
        return 1;
    }
    if(x_shi==y_ge || x_shi==y_shi || x_shi==y_bai)
    {
        return 1;
    }
    if(x_bai==y_ge || x_bai==y_shi || x_bai==y_bai)
    {
        return 1;
    }
    if(x_ge==0 || x_shi==0 || y_shi==0 || y_ge==0)
    {
        return 1;
    }

    return 0;
}


最后一题:

#include <stdio.h>

int main()
{
    int i=0, j=0;
    int n=0;
    char word;
    char nword;

    scanf("%d %c",&n,&word);

    for(i=1; i<=n; i++)
    {
        for(j=0; j<n-i; j++)
        {
            printf(" ");
        }
        nword = word++;
        if(word > 'Z')
        {
            word = 'A';
        }
        for(j=1; j<=i*2-1; j++)
        {
            printf("%c",nword);
            if(j < i)
            {
                nword ++;
                if(nword > 'Z')
                {
                    nword = 'A';
                }
            }
            else
            {
                nword --;
                if(nword < 'A')
                {
                    nword = 'Z';
                }
            }
        }
        printf("\n");  //打印完一行后需要换行
    }
    printf("\n");

    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答