1. 程式人生 > >PAT考試乙級1010(C語言實現)

PAT考試乙級1010(C語言實現)

#include<stdio.h>  
int main(){
    int a=0,b=0,flag=0;
    char ch;
    do{
        scanf("%d %d",&a,&b);
        ch=getchar();
        if(b==0){
            if(flag==0)
                printf("0 0");
        }else{
            if(flag==0){
                printf("%d %d",a*b,b-1);
                flag=1
; }else{ printf(" %d %d",a*b,b-1); } } }while(ch!='\n'); return 0; }
#include<stdio.h>  
int main(){
    int a=0,b=0,flag=0;
    while(scanf("%d %d",&a,&b)){
        if(b==0){
            if(flag==0){
                printf("0 0");
            }
            continue
; } if(flag==0){ flag=1; }else{ printf(" "); } printf("%d %d",a*b,b-1); } return 0;//此結果提交時顯示執行超時,在編譯器中得出的結果是正確的。尚未解決。 }

總結:
1、第一次做比較迷糊的原因是一直在想“while()迴圈讀入a,b、迴圈內列印”的情況,是否是一遍讀入一遍列印。最後的結果是讀入整行,回車鍵結束讀入。
2、由於是兩個兩個,所有最主要的問題是哪一對是第一對讀入的,用flag變數記錄是否為第一個,類似於bool的用法。