#2133: C的優化輸入 (僅供參考)


morris1028 (碼畜)


用法:

將這些程式碼貼上去你的code

再指定m=input();即可

m是你想(型態自行修改)

使用注意:

1.請別放在最外層的輸入(如果要一直輸入的話),因為沒辦法判斷EOF結尾
2.型態請自行修改

NPSC 之類的超大筆輸入 優化之後可加快很多唷!!

EX:

int t,m;
while(scanf("%d",&t)==1)
  while(t--)
    {
      m=input();
      printf("%d\n",m);
    }

/************************/

正整數

/************************/

long long int input()  
{  
  char cha;  
  unsigned long long int x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
  x=cha-48;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x;  
}

/*************************/

±整數

/************************/

long long int input()  
{  
  char cha;  
  unsigned long long int x=0,flag=1;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
   if(cha!='-')
       x=x*10+cha-48; 
   else flag=-1;  
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
      x=x*10+cha-48;  
    }  
    return x*flag;  
}

/************************/

±浮點數

/************************/

double point()
{
  char cha;
  double poi=0,num=1;
    while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
     num=num/10;
     poi=poi+(cha-48)*num;
    }  
    return poi;
}        
double input()  
{  
  char cha,flag=1;  
  double x=0;  
  while(cha=getchar())  
     if(cha!=' '&&cha!='\n') break;  
   if(cha!='-')
       x=x*10+cha-48; 
   else flag=-1;
  while(cha=getchar())   
    {  
     if(cha==' '||cha=='\n') break;  
     if(cha=='.')
      {
        x=x+point();
        break;
      }
       x=x*10+cha-48; 
    }  
    return x*flag;
}

#2134: Re:C的優化輸入 (僅供參考)


morris1028 (碼畜)


我都忘了,只限定在輸入"數字"(不是大數!!)
#2142: Re:C的優化輸入 (僅供參考)


morris1028 (碼畜)



long long int input()
{
  char cha;
  unsigned long long int x=0;
  while(cha=getchar())
     if(cha!=' '&&cha!='\n') break;
  x=cha-48;
  while(cha=getchar())
    {
     if(cha==' '||cha=='\n') break;
      x=x*10+cha-48;
    }
    return x;
}

這是此題所需要的,真是的!!都說要自己修改型態了...

#2143: Re:C的優化輸入 (僅供參考)


bleed1979 (Bleed)



long long int input()
{
  char cha;
  unsigned long long int x=0;
  while(cha=getchar())
     if(cha!=' '&&cha!='\n') break;
  x=cha-48;
  while(cha=getchar())
    {
     if(cha==' '||cha=='\n') break;
      x=x*10+cha-48;
    }
    return x;
}

這是此題所需要的,真是的!!都說要自己修改型態了...

比如

******************************

while(cha=getchar()) 
    {
     if(cha==' '||cha=='\n') break;
      x=x*10+cha-48;

    }

******************************

 

是可以縮一點碼

****************************** 

while((cha=getchar())!=' '&&cha!='\n') 
  x=x*10+cha-48; 

******************************