将 ada 代码转换为其 C

标签 c switch-statement ada

我有一段如下所示的 ada 代码,它是一个简单的 switch case 语句。是否有更好的方法将其转换为 C。

         for I in 1..100 loop
           case I is
                when 100 =>
                    Dollars := Dollars + 1;
                when 25|50|75 =>
                    Quarters := Quarters + 1;
                when 10|20|30|40|60|70|80|90 =>
                    Dimes := Dimes + 1;
                when 5|15|35|45|55|65|85|95 =>
                    Nickles := Nickles + 1;
                when others =>
                    Pennies := Pennies + 1;
           end case;
         end loop;

现在通过为 case 中的每个值添加 switch 和 case,我可以进行这种转换,但似乎你让代码太大了。有没有其他简单紧凑的方法。如果问题不清楚?

最佳答案

尝试:

for(i=1;i<=100;i++) {
    if(i == 100) {
        dollars++;
    }else if(i % 25 == 0) {
        quarters ++;
    }else if(i % 10 == 0) {
        dimes ++;
    }else if(i % 5 == 0) {
        nickles ++;
    }else{
        pennies ++;
    }
}

关于将 ada 代码转换为其 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697947/

相关文章:

c - “%1$d” 输出的含义是什么?

c - GDB 无法识别某些 C 函数

c - 树莓派2的wiringPi库实现双向直流伺服电机旋转

JavaScript 开关盒?

ada - ada中的类型转换

c - 这个 C 结构体如何翻译成 Ada

c - 为什么我不能取消引用指向多维数组的指针?

PHP 与 JavaScript 切换缩进

javascript - 如何使 switch 语句一遍又一遍地运行而不会卡在负载上?

gcc - 构建 GCC-Ada,使用非常旧的 gnatmake 编译 s-excmac.adb 时出现语法错误