c语言关于数组的问题

c语言关于数组的问题#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)
{

for(int i = 0; ;i++)
{
printf("输入敲声元素第%d个,s结束:",i+1);
scanf("%s",stroke[i]);
if(strcmp(stroke[i],"s") == 0)
{
break;
}
}
for(int i = 0; ;i++)
{
printf("输入纹理元素第%d个,s结束:",i+1);
scanf("%s",texture[i]);
if(strcmp(texture[i],"s") == 0)
{
break;
}
}
for(int i = 0; ;i++)
{
printf("输入脐部元素第%d个,s结束:",i+1);
scanf("%s",navel[i]);
if(strcmp(navel[i],"s") == 0)
{
break;
}
}
for(int i = 0; ;i++)
{
printf("输入触感元素第%d个,s结束:",i+1);
scanf("%s",touch[i]);
if(strcmp(touch[i],"s") == 0)
{
break;
}
}
for(int i = 0; ;i++)
{
printf("输入好瓜元素第%d个,s结束:",i+1);
scanf("%s",good[i]);
if(strcmp(color[i],"s") == 0)
{
break;
}
else
a = a+1;
}
for(int 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);

}

这种程序一般用c++的类处理会好很多,起码用子函数来做也是不错的。

当然,源码能实现,少许地方编码有误,已改正,望采纳

#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(color[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);    
}

追问

原来的错哪里了?怎么感觉一样呢

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网