#1841: 神奇的空格


acm (acm)

學校 : 國立花蓮高級中學
編號 : 5854
來源 : [210.62.247.243]
最後登入時間 :
2010-02-01 15:08:10

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int a,b,n,str,sum;
char x[102];
int main()
{
 while(scanf("%d ",&n)==1) /*為什麼%d後面加個空格就AC 沒加就WA?*/

{
  for(a=0;a<n;a++)
  {
   gets(x);
   str=strlen(x);
   printf("Case #%d: ",a+1);
   sum=0;
   for(b=0;b<str;b++)
   {
    if(x[b]=='a'||x[b]=='d'||x[b]=='g'||x[b]=='j'||x[b]=='m'||x[b]=='p'||x[b]=='t'||x[b]=='w'||x[b]==' ')
    sum+=1;
    else if(x[b]=='b'||x[b]=='e'||x[b]=='h'||x[b]=='k'||x[b]=='n'||x[b]=='q'||x[b]=='u'||x[b]=='x')
    sum+=2;
    else if(x[b]=='c'||x[b]=='f'||x[b]=='i'||x[b]=='l'||x[b]=='o'||x[b]=='r'||x[b]=='v'||x[b]=='y')
    sum+=3;
    else if(x[b]=='s'||x[b]=='z')
    sum+=4;
   }
   printf("%d\n",sum);
  }
 }
 return 0;
}

 問題如程式碼的紅色字部份

#1888: Re:神奇的空格


davll (Davll)

學校 : 國立臺灣大學
編號 : 1266
來源 : [140.112.16.172]
最後登入時間 :
2014-05-19 21:04:10

 你不能直接把scanf和gets混在一起用,這樣就會出現無法預知的狀況。(每個編譯器都這樣)

你有得到AC就很幸運了,恭喜。希望你能試著修改成只有scanf或gets。  

#1889: Re:神奇的空格


davll (Davll)

學校 : 國立臺灣大學
編號 : 1266
來源 : [140.112.16.172]
最後登入時間 :
2014-05-19 21:04:10

#include
#include
#include
int a,b,n,str,sum;
char x[102];
int main()
{
 while(scanf("%d ",&n)==1) /*為什麼%d後面加個空格就AC 沒加就WA?*/

{
  for(a=0;a
  {
   gets(x);
   str=strlen(x);
   printf("Case #%d: ",a+1);
   sum=0;
   for(b=0;b
   {
    if(x[b]=='a'||x[b]=='d'||x[b]=='g'||x[b]=='j'||x[b]=='m'||x[b]=='p'||x[b]=='t'||x[b]=='w'||x[b]==' ')
    sum+=1;
    else if(x[b]=='b'||x[b]=='e'||x[b]=='h'||x[b]=='k'||x[b]=='n'||x[b]=='q'||x[b]=='u'||x[b]=='x')
    sum+=2;
    else if(x[b]=='c'||x[b]=='f'||x[b]=='i'||x[b]=='l'||x[b]=='o'||x[b]=='r'||x[b]=='v'||x[b]=='y')
    sum+=3;
    else if(x[b]=='s'||x[b]=='z')
    sum+=4;
   }
   printf("%d\n",sum);
  }
 }
 return 0;
}

 問題如程式碼的紅色字部份


#1891: Re:神奇的空格


davll (Davll)

學校 : 國立臺灣大學
編號 : 1266
來源 : [140.112.16.172]
最後登入時間 :
2014-05-19 21:04:10

抱歉,剛剛第二個回覆是不小心按到的

By the way, 你可以用

int T; 

char s[201]; 

cin.getline(s,200);

sscanf(s,"%d",&T); 

 這樣就可以了 

#1894: Re:神奇的空格


acm (acm)

學校 : 國立花蓮高級中學
編號 : 5854
來源 : [210.62.247.243]
最後登入時間 :
2010-02-01 15:08:10

抱歉,剛剛第二個回覆是不小心按到的

By the way, 你可以用

int T; 

char s[201]; 

cin.getline(s,200);

sscanf(s,"%d",&T); 

 這樣就可以了 


謝謝你^_^
#8037: Re:神奇的空格


cuh127 (futurhack~~~~~興國猩國也(絕對沒有在污辱女性))

學校 : 臺南市私立興國高級中學
編號 : 28132
來源 : [203.68.26.150]
最後登入時間 :
2014-04-02 16:51:03

眞的耶!加一個空格就AC