当前位置: 代码迷 >> C语言 >> 不明白为什么
  详细解决方案

不明白为什么

热度:93   发布时间:2008-03-06 14:38:40.0
不明白为什么
这个程序调试时出错,实在不知道为什么,请高手指点,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;
}
搜索更多相关的解决方案: include  Thank  

----------------解决方案--------------------------------------------------------
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循环会有什么反应呢?请高手指导! ...


应该是顺着往下跑吧...但是跑到一定的时候出错

另外...ch没初值,能赋值给数组?
----------------解决方案--------------------------------------------------------
没有出口, 出不来.
----------------解决方案--------------------------------------------------------
  相关解决方案