內容
練習字串的分析與處理
輸入
一個字串,內部包含數組資料,每組資料有一個序號,及一個實數。
格式如下: 序號:實數
請注意,序號有可能跳號
1:12.5 2:12 3:13.1 4:13.0
1:1.2 3:2.3
輸出
請求出所有序號為奇數的實數的和減掉所有序號為偶數的實數,並印出結果。
0.6
3.5
解題思路
每筆測資以空白作為各資料的分割點,再以冒號作為各資料中序號及實數的分割點。
處理完字串後按題意對最終答案進行加或減即可。
完整程式碼
AC (2ms, 100KB)
#include <stdio.h> #include <string.h>
double num, sum; int idx; char input[10000], * tok;
int main() { while (gets(input) != NULL) { sum = 0, tok = strtok(input, " "); while (tok != NULL) { sscanf(tok, "%d:%lf", &idx, &num); sum += idx & 1 ? num : -num; tok = strtok(NULL, " "); } printf("%g\n", sum); } return 0; }
|