不明白为什么
这个程序调试时出错,实在不知道为什么,请高手指点,Thank you!!#include <stdio.h>
int main(void)
{
char ch, a[50];
int i = 0, j;
printf ( "Please input strings:" );
while ( ( ch = getchar () ) != '#' )
{
if ( ch != '.' )
putchar(ch);
else
{
ch = '!';
putchar(ch);
}
while ( 1 )
{
a[i] = ch;
i++;
}
}
j = i;
for ( i = 0; i <= j; i++ )
{
if ( a[i] == '!' )
{
a[i] = '!!';
putchar(a[i]);
}
else
putchar(a[i]);
}
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
while ( 1 )
{
a[i] = ch;
i++;
}
看了饿一下.这里怎么跳出来啊?没仔细看
----------------解决方案--------------------------------------------------------
while ( 1 )
{
a[i] = ch;
i++;
}
不准备出来了???死循环
----------------解决方案--------------------------------------------------------
char ch, a[50];
while ( 1 )
{
a[i] = ch;
i++;
字符数组只有50个元素,当i自加到50以及〉50时(如果有那么多字符的话),while循环会有什么反应呢?请高手指导!
----------------解决方案--------------------------------------------------------
两种可能,顺着地址向下跑.或者出错....找不到真确的出口
----------------解决方案--------------------------------------------------------
还有一种可能,在WINXP下应该会弹出有关内存错误的对话
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]xfcyjhb[/un] 在 2008-3-7 12:52 的发言:[/bo]
char ch, a[50];
while ( 1 )
{
a = ch;
i++;
字符数组只有50个元素,当i自加到50以及〉50时(如果有那么多字符的话),while循环会有什么反应呢?请高手指导! ...
char ch, a[50];
while ( 1 )
{
a = ch;
i++;
字符数组只有50个元素,当i自加到50以及〉50时(如果有那么多字符的话),while循环会有什么反应呢?请高手指导! ...
应该是顺着往下跑吧...但是跑到一定的时候出错
另外...ch没初值,能赋值给数组?
----------------解决方案--------------------------------------------------------
没有出口, 出不来.
----------------解决方案--------------------------------------------------------