使用if else切换语句if。 DEVC ++ [英] Switch statement with if else if. DevC++

查看:557
本文介绍了使用if else切换语句if。 DEVC ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在研究成绩系统,但我不确定代码是否有问题。



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

using namespace std;

int main()
{
int aCount = 0 ,bCount = 0 ,cCount = 0 ,fCount = 0 ;
int name = 0 ;
int name2 = 0 ;
string one = ;

printf( 输入您的成绩:);

scanf( %d,& name);

if (name> = 90 ){
< span class =code-comment> // one = one +A;
name2 = 1 ;
}
其他 if (name> = 80 ){
// one = one +B;
name2 = 2 ;
}
其他 if (name> = 70 ){
// one = one +C;
name2 = 3 ;
}
else if (name< = 69 ){
// one = one +F;
name2 = 4 ;
}

// ----------- -----------------------------------

switch (name2){
case ' 1'
++ aCount;
break ;
case ' 2'
++ bCount;
break ;
case ' 3'
++ cCount;
break ;
case ' 4'
++ fCount;
break ;
}

printf( A:%d \ n,aCount);

printf( B:%d \ n,bCount) ;

printf( C:%d \ n,cCount) ;

printf( F:%d \ n,fCount) ;

getchar();
getchar();
return 0 ;
}







上述代码的任务是首先要求你的成绩数字示例:90。然后使用if else语句使name2变量为1,如果name为> = 90,如果name> gt =,则为2;如果name> = 70,则为3;如果name< = 69,则为4。在执行此操作后,它使用switch case语句来检查名为name2的变量是否为1或2或3或4.之后,它将++ 1添加到计数器中并显示结果。目前的问题是它没有显示任何其他所有值= 0.



我不确定我在这里做错了什么。任何例子都会很棒。 :)

解决方案

要解决您的问题,请从案例值中删除''。

  switch (name2){
case 1
++ aCount;
break ;
case 2
++ bCount;
break ;
case 3
++ cCount;
break ;
case 4
++ fCount;
break ;
}





我建议您合并if和switch语句。

< pre lang =c> if (name> = 90
{
++ aCount;
}
其他 if (name> = 80
{
++ bCount;
}
其他 if (name> = 70
{
++ cCount;
}
else if (name< = 69
{
++ fCount;
}


I have been working on a grade system but I am not sure whats wrong with the code.

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

using namespace std;

int main()
{
    int aCount = 0, bCount = 0, cCount = 0, fCount = 0;
    int name = 0;
    int name2 = 0;
    string one = "";

    printf("Enter your grade: ");

    scanf("%d",&name);

    if (name >=90) {
        // one = one + "A";
        name2 = 1;
    }
    else if (name >= 80) {
        // one = one + "B";
        name2 = 2;
    }
    else if (name >=70) {
        // one = one + "C";
        name2 = 3;
    }
    else if (name <=69) {
        // one = one + "F";
        name2 = 4;
    }

    //----------------------------------------------

    switch( name2 ) {
        case '1':
            ++aCount;
            break;
        case '2':
            ++bCount;
            break;
        case '3':
            ++cCount;
            break;
        case '4':
            ++fCount;
            break;
    }

    printf( "A: %d\n", aCount );

    printf( "B: %d\n", bCount );

    printf( "C: %d\n", cCount );

    printf( "F: %d\n", fCount );

    getchar();
    getchar();
    return 0;
}




the task of the above code is that is first asks for your grades number example: 90. then using the if else statement makes name2 variable to 1 if name is >= 90, 2 if name >= 80, 3 if name >= 70 and 4 if name <=69. After doing that it uses the switch case statement, to check if the variable called name2 is 1 or 2 or 3 or 4. After that its adds ++1 into counter and shows me the result. The problem currently is that it is not showing anything other then all values = 0.

I am not sure what exactly I am doing wrong here. Any examples would be great. :)

解决方案

To solve your problem remove the '' from the case values.

switch( name2 ) {
    case 1:
        ++aCount;
        break;
    case 2:
        ++bCount;
        break;
    case 3:
        ++cCount;
        break;
    case 4:
        ++fCount;
    break;
}



May I suggest you merge the if- and switch-statement.

if (name >= 90)
{
    ++aCount;
}
else if (name >= 80)
{
    ++bCount;
}
else if (name >= 70)
{
    ++cCount;
}
else if (name <= 69)
{
    ++fCount;
}


这篇关于使用if else切换语句if。 DEVC ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆