給定一組整數,統計其中負數、零和正數的個數。輸入包含多組測試數據,每組第一行為整數 n (n > 0),表示後續有 n 個浮點數。當 n 為 0 時結束輸入。對於每組數據,輸出負數、零、正數的個數,以空格分隔。
這是一道基礎的輸入處理與條件判斷題目。核心邏輯在於:
#include <stdio.h>
int main(void) {
int n, i, neg_count, zero_count, pos_count;
float num;
while (scanf("%d", &n) != EOF) {
if (n == 0) break;
neg_count = zero_count = pos_count = 0;
for (i = 0; i < n; i++) {
scanf("%f", &num);
if (num < 0)
neg_count++;
else if (num == 0)
zero_count++;
else
pos_count++;
}
printf("%d %d %d\n", neg_count, zero_count, pos_count);
}
return 0;
}
時間複雜度:O(N),N 為所有測試用例中數字總個數。空間複雜度:O(1),僅使用常數級額外空間。