c - C语言: convert a number grade into a letter grade

标签 c function

我是编程新手(C),我要做一个练习,我必须创建一个将欧洲风格等级(1/20 到 20/20)转换为美国风格等级的函数:例如16 至 20 年级的成绩为“A”。 我必须将其集成到主程序中,该程序将要求转换成绩。

这是我到目前为止所做的,但它不起作用(当我输入 1 到 20 之间的数字时,我得到“null”而不是从 A 到 F 的字母):

char chartype;
char convert( int i){
    switch(i){
        case 16 ... 20:
        chartype = "A";
        break;
        case 13 ... 15:
        chartype = "B";
        break;
        case 10 ... 12:
        chartype = "C";
        break;
        case 8 ... 9:
        chartype = "D";
        break;
        case 6 ... 7:
        chartype = "E";
        break;
        case 0 ... 5:
        chartype = "F";
        break;
        default:
        chartype = "X";
        break;      
}
}

char convert (int note);

int main(){

    int note;
    char lettre = convert(note);
    printf("Quelle est la note à convertir?\n");
    scanf("%d", &note);


    printf("%s\n", lettre);
    return 0;
}

最佳答案

只需使用字符串查找适当的条目:

char convert(int numberGrade ){
   if (numberGrade >=0 && numberGrade  <= 20) {
           // 012345678901234567890      
      return "FFFFFFEEDDCCCBBBAAAAA"[numberGrade];
   }
   return 'X'
}

编辑

您还需要在输入值之后将调用移至转换函数。

见下文:

int main(){
    int note;
    printf("Quelle est la note à convertir?\n");
    scanf("%d", &note);
    char lettre = convert(note);

    printf("%c\n", lettre);  // use %c with `char`, not %s
    return 0;
}

关于c - C语言: convert a number grade into a letter grade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50215482/

相关文章:

c - 尝试使用 pdcurses 扩展库时出现与 gdi32 相关的错误

bash - bash 中的递归函数

javascript - 如何通过 JSON 传递函数名称并在 javascript/jQuery 中调用它?

c - 在内联汇编中读取非标准大小的寄存器(ID​​TR)(容易吗?)

c - 如何在 C 中定义 MPI 类型数组?

c - 我怎样才能每次都使用相同的随机数组?

c++ - 变量在传递给共享库函数时没有相同的值

javascript - 使用带有涉及随机生成器的onclick的javascript函数在html中显示span

javascript - 在javascript函数中返回未定义的值

javascript - 当我们在 Javascript 上创建两个不同的对象/实例时,方法或函数如何做同样的事情?