PAT考試乙級1010(C語言實現)
阿新 • • 發佈:2019-01-10
#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的用法。