c语言在线急等

2025-04-01 19:36:13
推荐回答(3个)
回答1:

题目怎么变了,不过还是回答下。

第一步:关键是找到行和列的关系。

第二步:简单的画两个数字对应的图形找关系

第三步,任意输入n,都可以出现原题目的结果

#include 
#include 

int main()
{
    int i,j;//循环变量
    int n;//保存输入的3,5,7,9等
    printf("请输入数字:n= ");
    scanf("%d",&n);
    printf("\n");
    for(i=0; i    {
        if(i == 0 || i == (n-1))
        {
            for(j=0; j            {
                if(j == n/2)//第1行和最后一行打印中间一颗*其余行部分打印空格补齐
                {
                    printf("*");
                    continue;
                }
                //printf("#");
                printf(" ");
            }
            printf("\n");
        }
         if(i > 0 && i < n-1)
        {
            //上半部分
            if(i <= n/2)
            {
                for(j=0; j                {
                    if(j == n/2-(i) || j == n/2+(i))//除了第1行和最后一行打印一颗*其余行部分打印2颗*及空格
                    {
                        //n/2-(i-1)
                        printf("*");
                        continue;
                    }
                    //printf("#");
                    printf(" ");
                }
                printf("\n");
            }
            //下半部分
            if(i>n/2)
            {
                for(j=0; j                {
                    if(j == n/2-(n-i-1) || j == n/2+(n-i-1))//除了第1行和最后一行打印一颗*其余行部分打印2颗*及空格
                    {
                        printf("*");
                        continue;
                    }
                    //printf("#");
                    printf(" ");
                }
                printf("\n");
            }
        }
    }

    return 0;
}

回答2:

#include 
#include 

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[])
{
int i,n=0;
printf("请输入正整数n:\n");
while(n<=0) {
scanf("%d",&n);
if(n<=0) {
printf("您的输入有误请重新输入!\n");
}
}
for(i=0; i if(i==0||i==n-1) {
printf("*\n");
}
else{
printf("* *\n");
}
}

return 0;
}

打码不容易望采纳谢谢。。。

回答3:

#include int main() { int n; int a[9000]; //确保保存最终运算结果的数组足够大 int digit = 1; //位数 int temp; //阶乘的任一元素与临时结果的某位的乘积结果 int i, j, carry; //carry:进位 while(scanf("%d",&n)!=EOF) { a[0] = 1; //将结果先初始化为1 digit = 1; for ( i=2; i<=n; i++ ) //开始阶乘,阶乘元素从2开始依次"登场" { //按最基本的乘法运算思想来考虑,将临时结果的每位与阶乘元素相乘 for( j=1, carry=0; j/相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位) a[j-1] = temp % 10; //更新临时结果的位上信息 carry = temp / 10; //看是否有进位 } while(carry) { //如果有进位 a[++digit-1] = carry % 10; //新加一位,添加信息。位数增1 carry = carry / 10; //看还能不能进位 } } for(j = digit; j >=1;j--) { printf("%d",a[j-1]); } printf("\n"); } return 0; }