#9586: C 語言 WA line 6


jimmy0301 (unknown)

學校 : 不指定學校
編號 : 45350
來源 : [111.243.23.208]
最後登入時間 :
2015-03-13 00:21:06
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [114.42.153.30] | 發表日期 : 2015-01-04 18:42

以下是我的 code

#include <stdio.h>

#include <string.h>

 

#define STRLEN 100000

 

int main(void)

{

   char str[STRLEN];

   char *ptr;                                                                   

   char *ptr2;

   int count = 0;

 

   memset(str, '\0', STRLEN);

   while(fgets(str, STRLEN, stdin) != NULL)

   {   

      ptr = strchr(str, ' ');

      

      while(ptr != NULL)

      {   

         

         ptr = ptr + 1;

         if(*ptr >='A' && *ptr <='Z' || *ptr >='a' && *ptr <='z')

            count++;

         ptr2 = strchr(ptr, ' ');

         if(ptr2 == NULL){

            break;

         }

         ptr = ptr2;

         

      }

      count++;

      if(strlen(str) <= 0)

        count = 0;

      printf("%d\n", count);

      count = 0;

      memset(str, '\0', STRLEN);

  }

  return 0;

 

我的想法是去計算空白數

因為字是用空白隔開

所以字數應該是空白數加 1

有考慮到空白後面沒有東西

但是在這個 case 的時候就我的答案跟系統答案比較

我的答案少兩個

請各位高手幫我看一下,謝謝。 

 
#9638: Re:C 語言 WA line 6


tigerrich (Nan)

學校 : 國立臺灣海洋大學
編號 : 47790
來源 : [219.85.164.223]
最後登入時間 :
2015-03-12 19:56:31
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [114.24.206.128] | 發表日期 : 2015-02-09 17:11

以下是我的 code

#include

#include

 

#define STRLEN 100000

 

int main(void)

{

   char str[STRLEN];

   char *ptr;                                                                   

   char *ptr2;

   int count = 0;

 

   memset(str, '\0', STRLEN);

   while(fgets(str, STRLEN, stdin) != NULL)

   {   

      ptr = strchr(str, ' ');

 

      while(ptr != NULL)

      {   

 

         ptr = ptr + 1;

         if(*ptr >='A' && *ptr <='Z' || *ptr >='a' && *ptr <='z')

            count++;

         ptr2 = strchr(ptr, ' ');

         if(ptr2 == NULL){

            break;

         }

         ptr = ptr2;

 

      }

      count++;

      if(strlen(str) <= 0)

        count = 0;

      printf("%d\n", count);

      count = 0;

      memset(str, '\0', STRLEN);

  }

  return 0;

 

我的想法是去計算空白數

因為字是用空白隔開

所以字數應該是空白數加 1

有考慮到空白後面沒有東西

但是在這個 case 的時候就我的答案跟系統答案比較

我的答案少兩個

請各位高手幫我看一下,謝謝。 

把隔開用空白" ",改成 不是英文字看看 AA...ZZ 這種狀況好像在這裡面算2次喔 所以 AA...ZZ CC GG這樣是4 不是3


 
ZeroJudge Forum