为了账号安全,请及时绑定邮箱和手机立即绑定

如果要将这个代码变成如图要怎么改

https://img1.sycdn.imooc.com//5bd98f8500014b7621931080.jpg有哪位大佬知道

正在回答

4 回答

#include<stdio.h>
int main()
{
 int i,n,x;
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
  if(i<=(n+1)/2)
  {
   for(x=(n-1)/2;x>=i;x--)
   {
    printf(" ");
   }
   for(x=1;x<=2*i-1;x++)
   {
    printf("*");
   }
   printf("\n");
  }
  else
  {
   for(x=1;x<=i-(n+1)/2;x++)
   {
    printf(" ");
   }
   for(x=(n-i+1)*2-1;x>=1;x--)
   {
    printf("*");
   }
   printf("\n");
  }
 }
 return 0;
}

2 回复 有任何疑惑可以回复我~
#1

堃鹏 提问者

能说说你的想法吗
2018-10-31 回复 有任何疑惑可以回复我~
#2

LimxrUi 回复 堃鹏 提问者

你就把它分半边,前(n+1)/2排和后面,然后再用FOR循环来解决每一排的图案
2018-11-01 回复 有任何疑惑可以回复我~
#3

堃鹏 提问者 回复 LimxrUi

i,n,x分别代表着什么呢
2018-11-01 回复 有任何疑惑可以回复我~
#4

LimxrUi

i是当前执行的排数,n是你设置的总排数
2018-11-01 回复 有任何疑惑可以回复我~
#5

LimxrUi 回复 堃鹏 提问者

x是每排需要输出空格和*号的个数
2018-11-01 回复 有任何疑惑可以回复我~
#6

堃鹏 提问者 回复 LimxrUi

相反的要怎么弄出来呢
2018-11-01 回复 有任何疑惑可以回复我~
#7

LimxrUi 回复 堃鹏 提问者

else //后半部分 { for(x=1;x<=i-(n+1)/2;x++) //用i减去前半部分,从1递增(每排递增) { printf(" "); } for(x=(n-i+1)*2-1;x>=1;x--) //用n-i+1表示的是该排为倒数第几排,再乘2减1就是该排该输出*号个数,递减到1为止(每排递减) { printf("*"); } printf("\n"); ////每排结尾换行
2018-11-01 回复 有任何疑惑可以回复我~
#8

堃鹏 提问者 回复 LimxrUi

谢谢大佬
2018-11-02 回复 有任何疑惑可以回复我~
查看5条回复

#include<stdio.h>
int fenzi(int a)
{
    if(a == 1)
    return 2;
    else if(a == 2)
    return 3;
    else
    return fenzi(a - 1)+fenzi(a - 2);
}

int main()
{
    int n, a;
    float sum;
    sum = 0;
    scanf("%d", &n);
    for(a = 1; a <= n; a++)
    {
        if(a == 1)
        {
            sum += 1.0 * fenzi(a) / 1;
        }
        else
        {
            sum += 1.0 * fenzi(a) / fenzi(a - 1);
        }
    }
    printf("%.2f", sum);
    return 0;
}


1 回复 有任何疑惑可以回复我~
#1

堃鹏 提问者

是否知道,double型十进制如何转换为二进制
2018-11-26 回复 有任何疑惑可以回复我~
#2

LimxrUi 回复 堃鹏 提问者

分两部分,把整数和小数分开,整数部分取余2,小数部分乘2取整
2018-11-27 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5bdc06160001b0e802001919.jpg像这个题我打出代码来,答案错误


0 回复 有任何疑惑可以回复我~
#1

LimxrUi

这个用递归
2018-11-04 回复 有任何疑惑可以回复我~
#2

LimxrUi

#include<stdio.h> int fenzi(int a) { if(a==1) return 2; else if(a==2) return 3; else return fenzi(a-1)+fenzi(a-2); } int main() { int n,i; float sum; sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { sum+=1.0*fenzi(i)/i; } printf("%.2f",sum); return 0; }
2018-11-04 回复 有任何疑惑可以回复我~

谢谢大佬


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果要将这个代码变成如图要怎么改

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信