c语言 统计整数小数个数

输入若干整数和小数,分别统计其中整数及小数的和。这里小数是指带有小数点的数,例如,12是整数,12.00是小数。

你题目的解答代码如下:

#include<stdio.h>
#include <string.h>
#include<math.h>

int main(void)
{
    char s[100];
    int a=0, b=0;
    while (scanf("%s", s)!=EOF) {
        if (strchr(s, '.')) {
            a++;
        } else {
            b++;
        }
    }
    printf("%d %d", a,b);
    return 0;
}

如有帮助,望采纳!谢谢!

如果12.00算小数的话,只能以字符的形式读取,然后进行转换。

img

代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int sum = 0;
    double sum2 = 0;
    double v;
    char buf[100];
    int i =0,j=0;
    char tmp[20];
    int flag;
    gets(buf); //读取数据
    while(1)
    {
        if(buf[i] == '\0'|| buf[i]==' ')
        {
            tmp[j]=0;
            if(flag == 1)
            {
                v = atof(tmp);
                sum2+=v;
            }else
            {
                v = atoi(tmp);
                sum += v;
            }
            j = 0;
            flag = 0;
            if(buf[i]=='\0') break;
        }else
        {
            tmp[j++] = buf[i];
            if(buf[i]=='.')
                flag = 1;
        }
        i++;
    }
    printf("整数和:%d\n",sum);
    printf("小数的和:%lf",sum2);
    return 0;
}