#21708: 拜託幫我看


abbychen892000@gmail.com (陳柏宏)


#include<stdio.h>

#include<stdlib.h>

int main()

{

    char a[200];

    int i=0;

    while(scanf("%c",&a[i])!=NULL)

    {

        a[i]=a[i]-7;

        printf("%c",a[i]);

        i++;

    }

    return 0;

}

我的程式碼在Codeblock終能跑出正解,但在這裡跑不出AC,跑出記憶體區段錯誤,有人知道原因嗎

#21718: Re:拜託幫我看


d2513850 (林勇智)


#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    char a[200];

    int i=0;

    while(scanf("%c",&a[i])!=NULL)

    {

        a[i]=a[i]-7;

        printf("%c",a[i]);

        i++;

    }

    return 0;

}

我的程式碼在Codeblock終能跑出正解,但在這裡跑不出AC,跑出記憶體區段錯誤,有人知道原因嗎


因為測資裡面字串長度不一定且不一定只有1個字元,所以最外層的while迴圈判別式改成這樣:

scanf("%s",a)!=EOF

最外層的while迴圈裡面再用while迴圈:

i=0;

while(a[i]!='\0'){

a[i]=a[i]-7;

i++;

 

}

最外層的while迴圈最後用printf函數輸出:

printf("%s\n",a);

#22228: Re:拜託幫我看


d828linda@gmail.com (通訊阿寶)


#include 

#include 

int main(void)

{

    char a[200];

    int i=0;

    while(scanf("%c",&a[i])!=NULL)

    {

        a[i]=a[i]-7;

        printf("%c",a[i]);

        i++;

    }

    return 0;

}

我的程式碼在Codeblock終能跑出正解,但在這裡跑不出AC,跑出記憶體區段錯誤,有人知道原因嗎


因為測資裡面字串長度不一定且不一定只有1個字元,所以最外層的while迴圈判別式改成這樣:

scanf("%s",a)!=EOF

最外層的while迴圈裡面再用while迴圈:

i=0;

while(a[i]!='\0'){

a[i]=a[i]-7;

i++;

 

}

最外層的while迴圈最後用printf函數輸出:

printf("%s\n",a);

200不夠