d018

輸入說明 :

一個字串,內部包含數組資料,每組資料有一個序號,及一個實數。

格式如下: 序號:實數

請注意,序號有可能跳號

輸出說明 :

請求出所有序號為奇數的實數的和減掉所有序號為偶數的實數,並印出結果。

sscanf和scanf的用法前面都有提到過了

%*c的意思是讀一個字串進來,然後捨棄它,題目也就是:

%後面加一個*,就是不要那個後面讀到的東西

printf("%g",sum) 會幫你印出剛好的位數,也就是0.6000會印出0.6而不是0.6000

#include<stdio.h>
#include<math.h>
int main()
{
    double sum;
    int n;
    double f;
    char s[10000];

    while(gets(s))
    {
        sum=0;
        char *p=s;
        int l;
        while(sscanf(p,"%d%*c%lf%n",&n,&f,&l)==2)
        {
            p+=l;
            if(n%2==1)
                sum+=f;
            else
                sum-=f;    
        }
        printf("%g\n",sum);

    }
    return 0;
}