#21708: 拜託幫我看


abbychen892000@gmail.com (陳柏宏)

學校 : 國立中正大學
編號 : 124369
來源 : [42.75.241.68]
最後登入時間 :
2020-07-13 16:40:36
a009. 解碼器 -- ACM 458 | From: [42.74.155.69] | 發表日期 : 2020-07-09 19:48

#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 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.80.239]
最後登入時間 :
2024-12-03 11:08:59
a009. 解碼器 -- ACM 458 | From: [163.26.71.40] | 發表日期 : 2020-07-11 12:16

#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 (通訊阿寶)

學校 : 不指定學校
編號 : 126895
來源 : [220.133.1.74]
最後登入時間 :
2020-08-17 15:12:05
a009. 解碼器 -- ACM 458 | From: [220.133.1.74] | 發表日期 : 2020-08-16 19:10

#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不夠



 
ZeroJudge Forum