2008
12-26

郁闷很,程序运行出来的答案和书上给的答案不同,和自己分析的也不同,不知道错哪了,程序和书上的一样,,头大很


#include<stdio.h>


main()


{


int i;


for(i=1;i<=5;i++)


switch(i%5)


{


case0:printf(“*”);break;


case1:printf(“#”);break;


default:printf(“\n”);


case2:printf(“&”);


}


}


书上的答案是#&


                  &


                  &*


可运行后的答案是&


                       &


                       &


                       &


并且,当我把default和case2调换后,运行结果是四个换行符!!


还有一个程序


#include<stdio.h>


main()


{


int c;


while((c=getchar())!=’\n’)


switch(c-’2′)


{


case0:


case1:putcgar(c+4);


case2:putchar(c+4);break;


case3:putchar(c+3);


default:putchar(c+2);break;}


printf(“\n”);


 }


   输入2473回车后,书上答案是668977,我也能推出来,但运行后是4695!!麻烦高手解释一下


菜鸟求助》有 3 条评论

  1. linder 说:

    case后面需要有空格的

    #include<stdio.h>

    main()

    {

    int i;

    for(i=1;i<=5;i++)

    switch(i%5)

    {

    case 0:printf(“*”);break;

    case 1:printf(“#”);break;

    default:printf(“\n”);

    case 2:printf(“&”);

    }

    }

     

  2. for(i=1;i<=5;i++)   switch(i%5)

    i%5的结果应该是1,2,3,4,0啊

    输出也应该是#&

     

                       *

    为什么结果却是#&

                      &

                      &*

    不解@???

     

     

     

     

  3. linder 说:

    case 后面需要空格的,否则相当与空指令

留下一个回复