c - 在 for 循环中重复使用 switch 语句

标签 c for-loop switch-statement cs50

我正在尝试使用循环来打印出一首重复的歌曲“this old man” 第一节是: 这位老人,他演奏了一个 他在我的拇指上玩小玩意儿 这位老人滚回家了

这首歌重复到十次,将两个词用斜体字改变 one -> two++ 和 thumb -> 另一件元素,如鞋子、膝盖等。 到目前为止,这是我的代码:

#include <cs50.h>
#include <stdio.h>
#include <string.h>

string change1 (int i);
int main (void)
{ 
    for (int i = 1; ; 1 < 11; i++)
    {
        printf ("This old man, he played "); 
        change1(i);
        printf("He played knick-knack on my %s\n\n", s1);
    }

    return 0;
 }

string change1(int i)
{
    string s1;

    switch(i)
    {
        case 1: 
        {
            printf("one\n");
            s1 = "thumb";
        }
            break;
        case 2:
        {
            printf("two\n");
            s1 = "shoe";
        }
            break;
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
        case 9:
        case 10:
        case 11:
            printf("ill add these cases later");
    }
}

这给我一条错误消息:“控制到达非空函数的末尾”


我也遇到了一个未声明的变量 s1 错误,但我在函数中声明了它。

最佳答案

您可以将您的程序简化为实际的 C 程序,而不是 C++

int main (void)
{
    int i;
    char* items[] = {"thumb", "shoe", "", "", "", "", "", "", "", ""};
    char* numbers[] = {"one", "two", "three","four","five","six","seven","eight","nine","ten"};
    for (i = 0; i < 10; i++)
    {
        printf ("This old man, he played %s\n", numbers[i]);    
        printf("He played knick-knack on my %s\n\n", items[i]);
    }
  return 0
}

关于c - 在 for 循环中重复使用 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20485435/

相关文章:

c++ - 有没有办法在后台发送一些已知 pid 的进程?

c - 这种 for 循环有什么原因吗?

ios - 标题 View 模型

c++ - 为什么常量 char 会中断 Loop 和 Switch 语句

c - 如何将内核中的数据写入二进制文件

c - 一次从文件中读取 2 行,然后在 C 中交替将两行合并为一行

c - 参差不齐的数组和 For 循环错误

c - C中的for循环只返回数组的第一个值

algorithm - 如何标准化 for 循环?

c# - 如何在 C# 中使用自定义属性来替换开关中的开关?