gpt4 book ai didi

我可以在与反控制重复和争论有关的家庭作业中得到一些帮助吗?

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:53 25 4
gpt4 key购买 nike

好的,所以我需要让输出看起来像星号组成的菱形,每行增加 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 个星,(然后反转)......我得到一条线有一颗星,一条有一个空格和 2 颗星的线,一条有两个空格和三颗星的线,等等,最多 4 个空格,五颗星(然后反转)...
printline 不同的原因是因为有时我在写这个时遇到问题,而且每当我尝试写它时我都会一直使用斜体......

最佳答案

一些提示:

  • 你的函数只需要打印字符,它不返回任何东西(为此有一个特定的返回类型)
  • 要打印的空格数和星星数大概是整数
  • 您可以使用 printf(" "); 打印单个空格
  • 您可以使用 printf("*"); 打印一颗星
  • 您可以使用 printf("\n"); 打印“换行符”(转到下一行)
  • 如果你说 int i=0; for(i=0; i<n; i++) { printf("X"); }您将打印这封信 Xn次(此时您可能还没有学习 for 循环;如果没有,请使用下一个提示)
  • 如果你说 int i=0; while(i<n) { printf("X"); i++; }您还将打印信件 Xn
  • 如果您使用 a 以外的参数名称,您会更开心和 b .尝试想一个与参数代表的内容相对应的名称。

对您的修改的回应:

  • 您需要使用两个独立的循环;一个打印空格,然后一个打印星星
  • for循环总是由一个初始值设定项、一个检查条件和一个步骤/增量构成
  • 您不需要为 stars 赋值或 spaces ;它们是调用您的人给您的号码 printline功能(即它们已经有一个值)

对您的第二次修改的回应:

  • 在你的for循环,您可能希望使用索引变量 other 而不是传入的参数(例如 for(i=0; i<spaces; i++) ,其中 i 只是您在函数顶部声明的计数器,就像在作业中的代码)在您当前的构造中,它会尝试打印 4 个空格,无论调用者在调用您的函数时指定了什么。
  • 您只需要输出一次换行符,您完成所有空格和星号之后(即输出换行符不属于 for 循环)
  • 您可能只需要将计数器增加 1每次输出一颗星星。
  • 如果作业要求创建一个名为 printline 的函数, 你不能称它为 print_line ;这不是一回事(PrintLine 也不是)

对您的第三次编辑的回应:

  • 不要忘记“每次输出一颗星时,您可能只需要将计数器增加 1。”
  • 不要忘记“你的函数只需要打印字符,它不返回任何东西(有一个特定的返回类型)”(即它不应该返回 char )
  • 我认为您希望打印空格的代码看起来更像打印星星的代码

关于我可以在与反控制重复和争论有关的家庭作业中得到一些帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com