当前位置:  开发笔记 > 编程语言 > 正文

我的作业可以与反控制的重复和参数有关吗?

如何解决《我的作业可以与反控制的重复和参数有关吗?》经验,为你挑选了1个好方法。

好的,所以我需要让输出看起来像一个星号菱形,每行增加2个星号,直到中间有9个星号......然后行减少.功能主要必须是:

int main (void){  
   int i;    
   i = 0;  
   while (i < 5){  
      printline (4-i, i*2+1);  
      i = i + 1;  
   }  
   i = 3;  
   while (i >= 0) {  
      printline (4-i, i*2+1);  
      i = i - 1;  
   }  
   return 0;  
}  

现在我应该定义函数printline,以便在每次调用时打印图中的一行.它需要2个参数,空格数和应该在线上打印的星号数.使用计数器控制的重复打印适当数量的空格,并再次打印适当数量的星号.

char print_line (int spaces, int stars){  
   for (int i = 4; i>=spaces; i--){  
      printf(" ");  
   }  
   for (int i = 1; i<=stars; i+=2){  
      printf("*");  
   }  
   printf("\n");  
}

哇噢!我就快完成了!输出有点正确,除了不是一个有4个空格和一个星的线,一个有3个空格和3个星的线,依此类推,没有空格和9个星,(然后反转)......我得到一条线有一颗星星,一条有空间和两颗星的线,一条有两个空间的三颗星等等,最多有4个空格五颗星(然后是反转的)......
印刷线不同的原因是因为我写这个有问题有时候,每当我试着写它时,我都会继续使用斜体...



1> Daniel LeChe..:

一些提示:

你的函数只需要打印字符,它不返回任何东西(这里有一个特定的返回类型)

要打印的空格数和星数可能是整数

您可以使用打印单个空间 printf(" ");

您可以使用打印单个星 printf("*");

您可以使用打印"换行符"(转到下一行) printf("\n");

如果你说int i=0; for(i=0; i你将X总共打印这封信n(此时你可能没有学习过循环;如果没有,请使用下一个提示)

如果你说int i=0; while(i你也将打印信件X一共有n

如果使用除a和之外的参数名称,您会更高兴b.尝试考虑与参数表示的名称相对应的名称.

回复您的编辑:

你会想要使用两个独立的循环; 一个打印空间,然后一个打印星星

for 循环始终由一个初始化程序,一个检查条件和一个步/增量构成

您不需要为stars或分配值spaces; 它们是任何调用你的printline函数给你的数字(即它们已经有一个值)

对第二次编辑的回复:

在你的for循环中,你可能想要使用索引变量不是传入的参数(例如for(i=0; i,在i你的函数顶部只声明一个计数器,就像在赋值的代码中一样)在你当前的构造中,它将尝试打印4个空格,无论调用者在调用您的函数时指定了什么.

在完成所有空格和星星,您只需要输出一次换行符(即输出换行符不属于for循环内)

1每次输出星形时,您可能只需要递增计数器.

如果赋值表示要调用函数printline,则不能调用它print_line; 这不是一回事(两者都不是PrintLine)

对第三次编辑的回复:

不要忘记" 1每次输出一颗星星时,你可能只需要递增计数器."

不要忘记"你的函数只需要打印字符,它不返回任何东西(这里有一个特定的返回类型)"(即它不应该返回一个char)

我想你想要打印空格的代码看起来更像打印星星的代码

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有