【问题标题】:expected identifier (in C) [closed]预期标识符(在 C 中)[关闭]
【发布时间】:2020-12-07 19:40:06
【问题描述】:

我目前正在做 CS50 计算机科学导论: 我开始了这段代码(用 C 编写),我必须根据用户编写的内容编写金字塔。

这是我的代码:

#include <stdio.h>

#include <cs50.h>

int main(void);

int n;

do

{

    n = get_int("Positive Number: \n");

}

while (n > 0 || n < 9);

这是我的终端显示的错误:

mario.c:6:1: error: expected identifier or '('
do
^
mario.c:10:1: error: expected identifier or '('
while (n > 0 || n < 9);
^
2 errors generated.
<builtin>: recipe for target 'mario' failed
make: *** [mario] Error 1

有人可以帮忙吗? 威廉

【问题讨论】:

  • 与您的问题无关,但请仔细查看您的条件n &gt; 0 || n &lt; 9。提示:此条件始终为真。

标签: c main do-while cs50 function-definition


【解决方案1】:

看看你的main()。你不是在写定义;你只是在声明主函数原型。通过添加大括号来修复它:

int main(void) {
  .
  .
  .
  return 0;
}

【讨论】:

    【解决方案2】:

    你在函数 main 的声明后放置了一个分号

    int main(void);
                ^^^^
    

    删除它并将 main 的主体括在大括号中

    int main(void)
    {
        //...
    }
    

    似乎也是do-while语句的条件

    do
    
    {
    
        n = get_int("Positive Number: \n");
    
    }
    
    while (n > 0 || n < 9);
    

    不正确。如果n 的输入值不是正数或大于或等于9,我怀疑您想重复循环。在这种情况下,条件应该是这样的

    do
    {
        n = get_int("Positive Number: \n");
    } while ( !( n > 0 && n < 9 ) );
    

    【讨论】:

    • 感谢 vlad,但我正在尝试创建一个循环,用户必须输入一个正数,包括 1 到 8。你能告诉我该怎么做吗?
    • @William 我想你想在用户没有输入正数或小于 9 的数字时继续循环。如果是这样,请参阅我的回答,我在其中展示了循环的条件应该是写的。
    • 感谢 vald 我已经设法解决了我的问题,虽然我使用了 || (OR) 而不是 && (AND)
    【解决方案3】:

    你必须在函数 main() 上编写代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 1970-01-01
      相关资源
      最近更新 更多