WS输入输出(转)

来源:互联网 发布:淘宝网怎样复制链接 编辑:程序博客网 时间:2024/06/08 13:22

首先这是一道水题

输入规模是n

运算过程有2*n

输出过程是n

那么,有图有真相:全部是G++交的。
猥琐的输入输出--说好听点也叫优化。。。(G++) - hplonline - hplonline20090711 备份

从下往上看过去。第一个是一般写法。第二个是ws输入。第三个是ws输出

输入部分:


        for ( i = 1 ; i <= n ; i ++ ){
        //    scanf("%d",s + i ) ;
            ch = getchar() ;
            if ( ch == '-' ){
                k = 1 ;
                j = 0 ;
            }else{
                j = ch - '0' ;
                k = 0 ;
            }
            while((ch = getchar()) >= '0'){
                j = j * 10 + ch - '0' ;
            }
            if (k) s[i] = -j ;
            else s[i] = j ;
        }

输出部分:

        for ( i = 1 ; i <= n ; i ++ ){
            //printf("%d ",s[i] ) ;
            j = 0 ;
            k = s[i] ;
            do {
                out[j ++] = k % 10 + '0';
                k /= 10 ;
            }while ( k ) ;
            while ( j -- ){
                putchar(out[j]) ;
            }
            putchar(' ');
        }

由此得到一个结论。。
getchar()和putchar()比scanf和printf快多了。。。

原创粉丝点击