Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C语言中的switch语句将普通数字转换成罗马数字 所以我做了一些小的活动,只是在其他的情况下,但是我的教授告诉我把它转换成开关,这让我很难。因为当我跑步的时候,一些像11的数字被输入为I,而不是席。 #include<stdio.h> #include<conio.h> int main() { int R,M,D,C,L,X,V,I,H=0; char roman_string= ' '; printf("\n\nEnter number here: "); scanf("%d",&R); M=R/1000; L=R%1000%500%100/50; X=R%1000%500%100%50/10; V=R%1000%500%100%50%10/5; I=R%1000%500%100%50%10%5/1; if(R>3000){ roman_string= 'A'; } if(M==3){ roman_string= 'B'; } if(M==2){ roman_string= 'C'; } if(M==1){ roman_string= 'D'; } D=R%1000/500; if((D==1) && (C==4)){ roman_string= 'E'; } if ((D==1) && (C!=4)){ roman_string='F'; } if((D==0) && (C==4)){ roman_string= 'G'; } C=R%1000%500/100; if(C==3){ roman_string= 'H'; } if(C==2){ roman_string= 'I'; } if(C==1){ roman_string= 'J'; } if((L==1) && (X==4)){ roman_string= 'K'; } if((L==1) && (X!=4)){ roman_string='L'; } if((L==0) && (X==4)){ roman_string='M'; } if(X==1){ roman_string='N'; } if(X==2){ roman_string='O'; } if(X==3){ roman_string='P'; } if((V==1) &&(I!=4)){ roman_string='Q'; } if(I==1){ roman_string='R'; } if(I==2) { roman_string='S'; } if(I==3) { roman_string='T'; } if((I==4) && (V%2==1)) { roman_string='U'; } if((I==4) && (V%2==0)){ roman_string='V'; } switch (roman_string) { case 'A' : printf("Invalid Input"); break; case 'B': printf("MMM"); break; case 'C': printf("MM"); break; case 'D': printf("M"); break; case 'E': printf("CM"); break; case 'F': printf("D"); break; case 'G': printf("CD"); break; case 'H': printf("CCC"); break; case 'I': printf("CC"); break; case 'J': printf("C"); break; case 'K': printf("XC"); break; case 'L': printf("L"); break; case 'M': printf("XL"); break; case 'N': printf("X"); break; case'O': printf("XX"); break; case 'P': printf("XXX"); break; case 'Q': printf("V"); break; case 'R': printf("I"); break; case 'S': printf("II"); break; case 'T': printf("III"); break; case 'U': printf("IX"); break; case 'V': printf("IV" ); break; } getch(); return 0; }_C_Loops_If Statement_Switch Statement - Fatal编程技术网

用C语言中的switch语句将普通数字转换成罗马数字 所以我做了一些小的活动,只是在其他的情况下,但是我的教授告诉我把它转换成开关,这让我很难。因为当我跑步的时候,一些像11的数字被输入为I,而不是席。 #include<stdio.h> #include<conio.h> int main() { int R,M,D,C,L,X,V,I,H=0; char roman_string= ' '; printf("\n\nEnter number here: "); scanf("%d",&R); M=R/1000; L=R%1000%500%100/50; X=R%1000%500%100%50/10; V=R%1000%500%100%50%10/5; I=R%1000%500%100%50%10%5/1; if(R>3000){ roman_string= 'A'; } if(M==3){ roman_string= 'B'; } if(M==2){ roman_string= 'C'; } if(M==1){ roman_string= 'D'; } D=R%1000/500; if((D==1) && (C==4)){ roman_string= 'E'; } if ((D==1) && (C!=4)){ roman_string='F'; } if((D==0) && (C==4)){ roman_string= 'G'; } C=R%1000%500/100; if(C==3){ roman_string= 'H'; } if(C==2){ roman_string= 'I'; } if(C==1){ roman_string= 'J'; } if((L==1) && (X==4)){ roman_string= 'K'; } if((L==1) && (X!=4)){ roman_string='L'; } if((L==0) && (X==4)){ roman_string='M'; } if(X==1){ roman_string='N'; } if(X==2){ roman_string='O'; } if(X==3){ roman_string='P'; } if((V==1) &&(I!=4)){ roman_string='Q'; } if(I==1){ roman_string='R'; } if(I==2) { roman_string='S'; } if(I==3) { roman_string='T'; } if((I==4) && (V%2==1)) { roman_string='U'; } if((I==4) && (V%2==0)){ roman_string='V'; } switch (roman_string) { case 'A' : printf("Invalid Input"); break; case 'B': printf("MMM"); break; case 'C': printf("MM"); break; case 'D': printf("M"); break; case 'E': printf("CM"); break; case 'F': printf("D"); break; case 'G': printf("CD"); break; case 'H': printf("CCC"); break; case 'I': printf("CC"); break; case 'J': printf("C"); break; case 'K': printf("XC"); break; case 'L': printf("L"); break; case 'M': printf("XL"); break; case 'N': printf("X"); break; case'O': printf("XX"); break; case 'P': printf("XXX"); break; case 'Q': printf("V"); break; case 'R': printf("I"); break; case 'S': printf("II"); break; case 'T': printf("III"); break; case 'U': printf("IX"); break; case 'V': printf("IV" ); break; } getch(); return 0; }

用C语言中的switch语句将普通数字转换成罗马数字 所以我做了一些小的活动,只是在其他的情况下,但是我的教授告诉我把它转换成开关,这让我很难。因为当我跑步的时候,一些像11的数字被输入为I,而不是席。 #include<stdio.h> #include<conio.h> int main() { int R,M,D,C,L,X,V,I,H=0; char roman_string= ' '; printf("\n\nEnter number here: "); scanf("%d",&R); M=R/1000; L=R%1000%500%100/50; X=R%1000%500%100%50/10; V=R%1000%500%100%50%10/5; I=R%1000%500%100%50%10%5/1; if(R>3000){ roman_string= 'A'; } if(M==3){ roman_string= 'B'; } if(M==2){ roman_string= 'C'; } if(M==1){ roman_string= 'D'; } D=R%1000/500; if((D==1) && (C==4)){ roman_string= 'E'; } if ((D==1) && (C!=4)){ roman_string='F'; } if((D==0) && (C==4)){ roman_string= 'G'; } C=R%1000%500/100; if(C==3){ roman_string= 'H'; } if(C==2){ roman_string= 'I'; } if(C==1){ roman_string= 'J'; } if((L==1) && (X==4)){ roman_string= 'K'; } if((L==1) && (X!=4)){ roman_string='L'; } if((L==0) && (X==4)){ roman_string='M'; } if(X==1){ roman_string='N'; } if(X==2){ roman_string='O'; } if(X==3){ roman_string='P'; } if((V==1) &&(I!=4)){ roman_string='Q'; } if(I==1){ roman_string='R'; } if(I==2) { roman_string='S'; } if(I==3) { roman_string='T'; } if((I==4) && (V%2==1)) { roman_string='U'; } if((I==4) && (V%2==0)){ roman_string='V'; } switch (roman_string) { case 'A' : printf("Invalid Input"); break; case 'B': printf("MMM"); break; case 'C': printf("MM"); break; case 'D': printf("M"); break; case 'E': printf("CM"); break; case 'F': printf("D"); break; case 'G': printf("CD"); break; case 'H': printf("CCC"); break; case 'I': printf("CC"); break; case 'J': printf("C"); break; case 'K': printf("XC"); break; case 'L': printf("L"); break; case 'M': printf("XL"); break; case 'N': printf("X"); break; case'O': printf("XX"); break; case 'P': printf("XXX"); break; case 'Q': printf("V"); break; case 'R': printf("I"); break; case 'S': printf("II"); break; case 'T': printf("III"); break; case 'U': printf("IX"); break; case 'V': printf("IV" ); break; } getch(); return 0; },c,loops,if-statement,switch-statement,C,Loops,If Statement,Switch Statement,每当您看到一堆if语句,它们只是将同一个变量与不同的整数常量进行比较,如下所示: if(x == 1) { do_1(); } else if(x == 2) { do_2(); } else if(x == 3) { do_3(); } /// etc. else { do_default(); } 您可以将它们更改为switch语句: switch(x) { case 1: do_1(); break; case 2: do_2()

每当您看到一堆if语句,它们只是将同一个变量与不同的整数常量进行比较,如下所示:

if(x == 1) {
    do_1();
}
else if(x == 2) {
    do_2();
}
else if(x == 3) {
    do_3();
}
/// etc.
else {
    do_default();
}
您可以将它们更改为switch语句:

switch(x) {
case 1:
    do_1();
    break;

case 2:
    do_2();
    break;

case 3:
    do_3();
    break;

/// etc.
default:
    do_default();
}

这可能会引起您的兴趣:在模数序列中,例如R%1000%500%100%50%10,其中所有mod值都是其余值的乘法,您可以舍弃整个序列,只使用最后一个值:R%10。无论如何,你的解决方案太做作了。想象你是一个罗马人;像罗马人一样去做。谢谢,但同样的情况怎么样?如本例`案例1&&4:printfCM;打破案例1:printfD;中断;}`如果两个案例应该运行相同的代码,只需重复case语句:case1:case4:do_something;打破