输入若干整数和小数,分别统计其中整数及小数的和。这里小数是指带有小数点的数,例如,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算小数的话,只能以字符的形式读取,然后进行转换。
代码如下:
#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;
}