开关语句出现问题

Having problems with switch statements

本文关键字:问题 语句 开关      更新时间:2023-10-16

我一直在尝试让这段代码工作,但不知何故我做不到。

#include <iostream.h>
#include <stdio.h>
int main() {
    int a,b,c;
    int y=3;
    int i=2;
    int g[] = {20};
    int m,k;
    int Z;
    printf("Enter a number for a");
    scanf("%d", &a);
    printf("Enter a number for b");
    scanf("%d", &b);
    printf("Enter a number for c");
    scanf("%d", &c);
    m=y;

    do
    {
        Z = a+b-c;
        switch(Z)
        {
        case '0':
        case '1': 
                k=17;
                m+=b;
                break;
        case '2': 
                m+=b;
                m=a;
                break;
        case '3':
                m=a-c;
                m+=b;
                m=a;
                break;
        case '7':
                m+=b;
                break;
        default:
                m=a;
                break;
        }
        g[m] = m%i;
        m--;

    }while(m>b);

}

这就是我不得不变成编码的方案。http://ff.tu-sofia.bg/PIK/Izpiti/MidTest07.html

默认情况下,y 和 i 分别为 3 和 2,数组 g 应包含 20 个整数,用户必须键入 a、b 和 c 的值。

Z 是一个整数,您的案例正在寻找字符串。 去掉案例中数字周围的引号。

在这种情况下,数组 g 不包含 20 个整数,它包含一个元素 20。我想你的意思是g[20] = {}

还有 Z 是如何计算的?是 (a+b)-c 还是 a+(b-c)?您需要括号来使您的意图更清晰

Z = a+b-c;
 switch(Z)
    {
    case 0:
    case 1: 
            k=17;
            m+=b;
            break;
    case 2: 
            m+=b;
            m=a;
            break;