切换语句有问题

时间:2013-10-29 19:03:32

标签: c++ c switch-statement

我一直试图让这段代码正常工作,但不知何故我不能这样做..

#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键入值。

1 个答案:

答案 0 :(得分:3)

Z是一个整数,你的案例正在寻找字符串。摆脱案件中数字的引用。

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

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

Z = a+b-c;

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