【问题标题】:How to print array with looping with C如何使用 C 循环打印数组
【发布时间】:2020-12-14 01:44:20
【问题描述】:

我想制作请求用户输入整数的程序。如果用户输入 0,则显示“Sunday”,如果用户输入 1,程序将显示“Monday”,以此类推,直到“Saturday”。如果用户输入的值超出了 0 到 6 的范围,程序将写入“Invalid Days”。但是当我输入一个整数时,天数数组没有出现。我该怎么办?

这是“code.cpp”

main(){
    char days[7] = {"Sunday","Monday","Tuesdat","Wednesday","Thursday","Friday","Saturday"};
    
    int i;
    
    printf("Input Integer:");
    scanf("%d",&i);
    
    if(i < 0 || i >= 7) {
      printf("invalid days\n");
      return;
    }    

    for (i ; i < 7;i++)
    {
        printf("Days: %d\n", days[i]);
    }
}

当我在 dev C++ 上运行它时,它显示错误,

4 91 F:\IPB\PENUGASAN\MATKUL\MATERI - Copy\APLIKOM\C++\UAS\UAS 2.cpp [错误] 'char [7]' 的初始化程序太多

13 7 F:\IPB\PENUGASAN\MATKUL\MATERI - Copy\APLIKOM\C++\UAS\UAS 2.cpp [Error] return-statement without value, in function return 'int' [-fpermissive]

【问题讨论】:

  • 你为什么用.cpp命名一个带有C程序的文件?你是用 C++ 编译器编译的吗?
  • %d 用于零终止字符数组文字?确定??
  • 不要使用i &lt;= 7,而是使用i &lt; 7,因为你只有6个(从0天算起)。
  • 'Sunday' is not 你认为是什么。
  • 有很多错误,你可以从编译器提示“'char [7]' 的初始化程序太多”的地方开始,你分配了 7 个字符并使用 7 个字符串进行初始化

标签: arrays c loops for-loop


【解决方案1】:
    #include <stdio.h>

main(){
    char* days[7] = {"Sunday","Monday","Tuesdat","Wednesday","Thursday","Friday","Saturday"};
    
    int i;
    
    printf("Input Integer:");
    scanf("%d",&i);
    
    if(i < 0 || i >= 7) {
      printf("invalid days\n");
      return 0;
    }    

    for (i ; i < 7;i++)
    {
        printf("Days: %s\n", days[i]);
    }
}

【讨论】:

  • 你真的运行过这个吗?它打印了什么?
  • 没有运行它,但代码看起来不错,这是一个简单的问题。
  • 好吧,运行它,看看它打印了什么。
  • 没有编译器无法运行,告诉我有什么问题?
  • 请测试您在答案中使用的代码,或者至少提及您尚未在答案本身中测试代码。此外,无论如何,您需要解释显示的代码为什么以及如何解决 OP 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
相关资源
最近更新 更多