#7963: 「正確」的 WA?


jdh8 (硬邦邦)

學校 : 臺北醫學大學
編號 : 6332
來源 : [122.116.101.60]
最後登入時間 :
2019-11-14 01:20:34
a132. 10931 - Parity -- UVa10931 | From: [36.231.74.237] | 發表日期 : 2013-07-17 21:02

我是解題編號 1529060

WA (line:1)
答案不正確

您的答案為: The parity of 1 is 1 (mod 2). 正確答案為: The parity of 1 is 1 (mod 2).
 
#7964: Re:「正確」的 WA?


jdh8 (硬邦邦)

學校 : 臺北醫學大學
編號 : 6332
來源 : [122.116.101.60]
最後登入時間 :
2019-11-14 01:20:34
a132. 10931 - Parity -- UVa10931 | From: [36.231.74.237] | 發表日期 : 2013-07-17 21:06

void printNumber (unsigned int n)
{
    char str[33];
    int i, count = 0;

    for (i=0; i<32; ++i) {
        if (n) {
            if (n % 2) {
                ++count;
                str[i] = '1';
            }
            else
                str[i] = '0';
            n /= 2;
        }
        else {
            str[i] = 0;
            break;
        }
    }
    str[33] = 0;

    fputs("The parity of ", stdout);
    for (; i>=0; --i)
        putchar(str[i]);
    printf(" is %d (mod 2).\n", count);
}

int main (void)
{
    unsigned int i;
    while (1) {
        scanf("%u", &i);
        if (i == 0) return 0;
        printNumber(i);
    }
#7970: Re:「正確」的 WA?


akira0331 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a132. 10931 - Parity -- UVa10931 | From: [203.70.194.240] | 發表日期 : 2013-07-18 12:03

void printNumber (unsigned int n)
{
    char str[33];
    int i, count = 0;

    for (i=0; i<32; ++i) {
        if (n) {
            if (n % 2) {
                ++count;
                str[i] = '1';
            }
            else
                str[i] = '0';
            n /= 2;
        }
        else {
            str[i] = 0;
            break;
        }
    }
    str[33] = 0;

    fputs("The parity of ", stdout);
    for (; i>=0; --i)
        putchar(str[i]);
    printf(" is %d (mod 2).\n", count);
}

int main (void)
{
    unsigned int i;
    while (1) {
        scanf("%u", &i);
        if (i == 0) return 0;
        printNumber(i);
    }
}


你的程式我跑出來的答案

The parity of  1 is 0 (mod 2).

                  ^^ 有兩個空格,不知為何count always 0   

 
#7971: Re:「正確」的 WA?


akira0331 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a132. 10931 - Parity -- UVa10931 | From: [203.70.194.240] | 發表日期 : 2013-07-18 12:06

void printNumber (unsigned int n)
{
    char str[33];
    int i, count = 0;

    for (i=0; i<32; ++i) {
        if (n) {
            if (n % 2) {
                ++count;
                str[i] = '1';
            }
            else
                str[i] = '0';
            n /= 2;
        }
        else {
            str[i] = 0;
            break;
        }
    }
    str[33] = 0;

    fputs("The parity of ", stdout);
    for (; i>=0; --i)
        putchar(str[i]);
    printf(" is %d (mod 2).\n", count);
}

int main (void)
{
    unsigned int i;
    while (1) {
        scanf("%u", &i);
        if (i == 0) return 0;
        printNumber(i);
    }
}


你的程式我跑出來的答案

The parity of  1 is 0 (mod 2).

                  ^^ 有兩個空格,不知為何count always 0   


of 和 1之間有兩個空格,排版輸出後^^位置跑掉

 
#7973: Re:「正確」的 WA?


jdh8 (硬邦邦)

學校 : 臺北醫學大學
編號 : 6332
來源 : [122.116.101.60]
最後登入時間 :
2019-11-14 01:20:34
a132. 10931 - Parity -- UVa10931 | From: [36.231.74.237] | 發表日期 : 2013-07-19 01:31

啊,不是多一個空格,是多一個 '\0'。應該要寫做

 for (--i; i>=0; --i)
        putchar(str[i]);

 
ZeroJudge Forum