【问题标题】:Can anyone explain me what am I doing wrong with the loops in my program?谁能解释我在程序中的循环做错了什么?
【发布时间】:2021-07-02 06:31:51
【问题描述】:

我是 C 新手,正在制作一个程序,其中绘制了一个哈希网格,用户输入了一个网格的尺寸。我还使用 cs50 库来获取一个 int。每当我输入尺寸时,都不会出现哈希值。请帮我。提前致谢 代码:

#include <stdio.h>
#include <cs50.h>
int main(void){
    int x;
    int y;
    do{
        x=get_int("Width of the hash floor: ");
        y=get_int("Length of the hash floor: ");
        return x;
        return y;
    } while (x>1);
    for (int n=0;n<x;n++){
        printf("#");
        for(int a=0;a<y;a++){
            printf("#\n");
        }
        
    }
}

【问题讨论】:

  • return 语句立即结束/退出函数。
  • return 表示退出当前函数。
  • @Lucas 不需要return 0? from main`。 main 隐式返回 0。
  • @Lucas 我也是,我也会删除这个。您也可以删除您的最后一条评论。

标签: c loops cs50


【解决方案1】:

在做的时候... 不要使用 return 并让 while 的条件满足。 Return指令用于从子程序或中断程序返回到主程序

【讨论】:

    【解决方案2】:

    你可能想要这个:

    • 删除两个return 语句,它们在这里没有任何意义。
    • 更改 while 循环(请参阅下面代码中的注释)。

    #include <stdio.h>
    #include <cs50.h>
    
    int main(void) {
        int x;
        int y;
    
        do{
            x = get_int("Width of the hash floor: ");
            y = get_int("Length of the hash floor: ");
        } while (x < 1 || y < 1);  // ask for width and length until both
                                   // x and y are larger than 0
    
        for (int n = 0; n < x; n++) {
            printf("#");
            for (int a = 0; a < y; a++) {
                printf("#\n");
            }        
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 2015-07-08
      • 2017-09-29
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多