泰坦之旅手游 加点:C语言改错(高手来)

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 17:11:02
此程序有一处错误,请改之,不甚感激
main()
{ char s[]="2463",c,i;
for(i=0;c=s[i];i++)
{ switch((c-'0')
{ case 2:
case 3: putchar(c+4);continue;
case 4: putchar(c+4);break;
case 5: putchar(c+3);
default:putchar(c+2);
}
putchar('\n');
}
}
你们说的那个括号问题是不存在的,否则你自己运行这个程序再加个)你试试,这题我是在我们大一的教材上抄下来的一点没抄错

以下是我在机子上调试过的程序保证没错:#include<stdio.h>
void main()
{
char s[]="2463",c,i;
for(i=0;c=s[i];i++)
{
switch((c-'0') )
{
case 2:
case 3: putchar(c+4);continue;
case 4: putchar(c+4);break;
case 5: putchar(c+3);
default:putchar(c+2);
}
putchar('\n');
}
}

switch后面多了个(
最开始少#include "stdio.h", 因为putchar()要用到包含
改了这两处结果是
68
8
7

switch((c-'0')

少一个括号。

for(i=0;c=s[i];i++)
会造成数组越界,导致不可预料的结果

请访问:http://blog.sina.com.cn/u/1239588573里面有计算机2级c语言
经典编程题目100题,希望大家共同交流!
呵呵!来把,朋友!
顺便,别忘记了留言!http://blog.sina.com.cn/u/1239588573
谢谢!
我会根据你的留言(在http://blog.sina.com.cn/u/1239588573里的留言)
来悬赏分数!
希望朋友支持!!!

switch后面多了个(