#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int test, l , b, sqr, area, sqra, num;
fscanf(stdin, "%d", &test);
while(test--) {
fscanf(stdin, "%d %d", &l, &b); //input:
area = l * b; //2
sqr = sqrt(area); //2 2
sqra = sqr * sqr; //7 9
while(sqr) {
if(!(area % sqra)) {
num = area/sqra;
--sqr;
break;
}
}
fprintf(stdout, "%d\n", num);
}
return 0;
}
我的代碼在測試> = 2時不起作用。我認爲問題出在fscanf上。你能解釋爲什麼嗎?爲什麼不是fscanf()工作?
你在哪裏以及如何聲明'num'?另外,如果'area'的平方根小於1,則在'sqr'中結果將被截斷爲零(意味着循環將不會運行,'num'將最可能包含一個隨機值)。 –
爲了幫助您找到問題,我建議您在調試器中逐行運行程序,同時檢查所有計算結果。 –
您應該提供一些示例輸入。 –