c语言的问题,为什么输出是nan?

c语言的问题,为什么输出是nan?#include<stdio.h>#include<string.h>#include<math.h>inta=0;intA,B,C=0... c语言的问题,为什么输出是nan?#include<stdio.h>
#include<string.h>
#include<math.h>
int a = 0;
int A,B,C= 0;
double info = 0;
char color[1000][1000] = {0};
char found[1000][1000] = {0};
char stroke[1000][1000] = {0};
char texture[1000][1000] = {0};
char navel[1000][1000] = {0};
char touch[1000][1000] = {0};
char good[1000][1000] = {0};
int main(void)
{
int i;
for(i = 0; ;i++)
{
printf("输入敲声元素第%d个,s结束:",i+1);
scanf("%s",stroke[i]);
if(strcmp(stroke[i],"s") == 0)
{
break;
}
}
for(i = 0; ;i++)
{
printf("输入纹理元素第%d个,s结束:",i+1);
scanf("%s",texture[i]);
if(strcmp(texture[i],"s") == 0)
{
break;
}
}
for(i = 0; ;i++)
{
printf("输入脐部元素第%d个,s结束:",i+1);
scanf("%s",navel[i]);
if(strcmp(navel[i],"s") == 0)
{
break;
}
}
for(i = 0; ;i++)
{
printf("输入触感元素第%d个,s结束:",i+1);
scanf("%s",touch[i]);
if(strcmp(touch[i],"s") == 0)
{
break;
}
}
for(i = 0; ;i++)
{
printf("输入好瓜元素第%d个,s结束:",i+1);
scanf("%s",good[i]);
if(strcmp(good[i],"s") == 0)
{
break;
}
else
a = a+1;
}
for(i = 0;i<=a-1;i++)
{
if(strcmp(good[i],"是") == 0)
A = A+1;
else
C = C+1;
}
info = -(A/a)*log(A/a)/log10(2)-C/a*log10(C/a)/log10(2);
printf(" %lf",info);
}
展开
 我来答
四舍五不入6
高粉答主

2020-02-12 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2万
展开全部

NaN 的意思是 “Not a Number”, 不是一个数值,或无法表示的数值,例如溢出了, 负数求对数了,分母为0了。

用户可以加入一些打印语句,检查数据是否有错。

再有 A/a 这种运算是整除运算,不能算做是浮点运算

扩展资料:

C语言函数

C语言log()函数:返回x的自然对数(以e为底的对数)

C语言ldiv()函数:求两个数的商和余数(针对long类型)

C语言ceil()函数:求不小于x的最小整数(向上取整)

C语言floor()函数:求不大于x的最大整数(向下取整)

int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)

double cabs(struct complex znum) 返回复数znum的绝对值

参考资料来源:百度百科-c语言

参考资料来源:百度百科-C语言函数

金色潜鸟
推荐于2017-11-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5566万
展开全部
NaN 的意思是 “Not a Number”, 不是一个数值,或无法表示的数值,例如 溢出了, 负数求对数了,分母为0了。
你可以加入一些打印语句,检查数据是否有错。
再有 A/a 这种运算 是 整除 运算,不是浮点运算 ! 这是不是 自己想要的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尛ccc皇
2019-07-25
知道答主
回答量:3
采纳率:0%
帮助的人:1879
展开全部
Not a Number
我的错误是用 memset 对double数组进行赋值了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式