英语培训机构财务计划:C语言的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 02:37:18
对以下程序,从第一列开始输入数据:2473〈CR〉,程序输出的结果是多少?
#include "stdio.h"
main()
{ int c;
while((c=getchar())!=‘\n’)
{ switch(c-‘2’)
{ case 0
{ case 1 putchar(c+4);
case 2 putchar(c+4);break;
case 3 putchar(c+3);
default putchar(c+2);break;
}
} printf("\n");
}

668977
switch(c-‘2’)
{ case 0
{ case 1 putchar(c+4);
case 2 putchar(c+4);break;
case 3 putchar(c+3);
default putchar(c+2);break;
}
应该是
switch(c-‘2’)
{ case 0 :
case 1:putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}

2:'2'-'2'=0因此执行
case 0 :
case 1:putchar(c+4);
case 2: putchar(c+4);break;
输出66

4:'4'-'2'=2因此执行
case 2: putchar(c+4);break;
输出8

7: '7'-'2'=5因此执行
default: putchar(c+2);break;
输出9

3:'3'-'2'=1因此执行
case 1:putchar(c+4);
case 2: putchar(c+4);break;
输出77

你的程序有很多错误,在此更正:

#include "stdafx.h"
#include "stdio.h"

main()
{
int c;
while((c=getchar())!='\n')
{
switch(c-'2')
{ case 0:
case 1: putchar(c+4); break;
case 2: putchar(c+4);break;
case 3: putchar(c+3); break;
default: putchar(c+2);break;

};

}
printf("\n");

return 0;
}
输入2473输出6897

4