d073(v2) - Error
題目描述
題目要求讀取一個整數 a,然後根據 scanf 的返回值判斷是否成功讀取。如果成功讀取,則計算 (a + 2) / 3 的值並輸出。如果讀取失敗,則輸出 0。
解題思路
這題利用了 scanf 的返回值特性。scanf 成功讀取時返回讀取到的參數數量,否則返回 EOF。程式碼使用條件運算符 ? : 簡潔地實現了這個邏輯。printf 函數的返回值被賦值給 a,但實際上 printf 的返回值並不重要,關鍵在於 scanf 的返回值。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <stdio.h>
int main(){
int a(printf("%d\n",scanf("%d",&a)?(a+2)/3:0));
}