小白求助
#include <stdio.h>int odd_sum(int b);
int odd_count(int b);
float odd_avg(int b );
void main()
{
int i, s, g, b;
float v; //s是奇数和,g是奇数个数,v是平均数//
for(i=0; i<10; i++)
{
scanf("%d", b);
}
s = odd_sum( b );
g = odd_count( b );
v = odd_avg( b );
printf("输入的数字中其中奇数个数为:%d, 它们的和为:%d, 平均数为:%f", g, s, v);
}
int odd_sum(int b)
{
int i, m = 0;
for(i=0; i<10; i++)
{
if( b/2 != 0)
{
m=m+b;
}
}
return m;
}
int odd_count(int b)
{
int i,k=0;
for(i=0; i<10; i++)
{
if(b/2 != 0)
{
k++;
}
}
return k;
}
float odd_avg(int )
{
float s;
s = odd_sum( b ) / odd_count( b ); //调用求和还有求个数的函数来求平均数//
return s;
}
我这里是要声明三个函数 来求输入的数字里面奇数和 个数 以及奇数的平均数
为什么系统提示我int转换成float 会数据丢失呢 求助一下大神
#include <stdio.h>
int odd_sum(int a[])
{
int ans = 0;
for (int i = 0; i < 10; i++)
ans += a % 2 == 0 ? 0 : a;
return ans;
}
int odd_count(int a[])
{
int ans = 0;
for (int i = 0; i < 10; i++)
ans += a % 2;
return ans;
}
float odd_avg(int a[])
{
if (odd_count(a))
return 1.0 * odd_sum(a) / odd_count(a);
else
return 0.0;
}
int main(void)
{
int i, a = {0};
for (int i = 0; i < 10; i++)
scanf("%d", &a);
printf("输入的数字中其中奇数个数为:%d, 它们的和为:%d, 平均数为:%f", odd_count(a), odd_sum(a), odd_avg(a));
return 0;
} 输入没加&
%2==0是偶数,!=0是奇数
都是整数运行的话加个1.0或强制转换一下类型 baige 发表于 2021-4-8 15:22
输入没加&
%2==0是偶数,!=0是奇数
都是整数运行的话加个1.0或强制转换一下类型
哈哈哈 感谢! g1063496360 发表于 2021-4-8 15:31
哈哈哈 感谢!
我想问一下 为什么我不可以用 b/2 != 0来判断奇偶呢我调试的时候偶数也被当成奇数来算了 baige 发表于 2021-4-8 15:22
输入没加&
%2==0是偶数,!=0是奇数
都是整数运行的话加个1.0或强制转换一下类型
懂了懂了 我真是傻瓜了
页:
[1]