프로그래밍

 3198, 1/160 회원가입  로그인  
   teamo1111
   문자열 관련 2차원 포인터배열에서 질문드립니다!

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6336 [복사]


#include <stdio.h>

int main()
{
char animal[][10]={"monkey","elephant","dog","sheep","pig",
                    "lion","tiger","puma","turtle","fox"};
int count;
int i,j;
int empty=0;
double total=0;
double rate;

count=sizeof(animal)/sizeof(animal[0]);

for(i=0;i<count;i++)
{
for(j=0;j<11;j++)
{
total++;
if(animal[i][j]='\0')
{
empty++;
}
}
}

rate=empty/total;

printf("낭비되는 기억공간의 비율 : %.2lf",rate);

scanf("%d");
}

제가 풀려는건 위와 같은 배열에서 낭비되는 기억공간의 수를 비율로 나타내는건데
어디가 문젠지 값이 0.00으로 나오네요.
배열을 순차적으로 진행하다가 \0 문자가 나오면 empty 의 숫자를 하나씩 늘려나가서
나중에는 낭비되는 공간/전체 공간으로 나누면 될 것 같은데  어디가 문제인지 모르겠네요!
기초적인 질문인 것 같지만 그래도 궁금해서 여쭤봅니다!
제가 여기까지 배우는 과정에서 어떤점에서 기본적인 학습이 부족하다는게 보이시면 맘껏 질타해주셔도 기분좋게 받아들이겠습니다.

그리고 글중에 ftz 관련된 글이 많이 올라오던데 ftz라는게 뭔지도 알려주시면 감사하겠습니다!

  Hit : 4069     Date : 2013/05/03 09:47



    
nsh009 char 형이면 낭비 없이 차곡 차곡 들어갈텐데요.. 2013/05/05  
teamo1111 배열에서 열이 10개라서글자로 채워지지않은 부분은 null로 초기화 되는데요..ㅜㅜ
제가 낭비라고 말한 부분은 이 null로 채워진부분이예요!
저렇게 if문으로 null이 나올 때마다 empty 변수에 +1을 하면 null로 채워진 부분의 갯수가 나올것같은데
Empty값이 0으로 나오는게 문제네요!
제가 질문드리고 싶은건 제가 어떤 문제를 간과하고 코딩을 했는지 그래서 어느부분이 잘못됐는지예요!ㅎㅎ
2013/05/06  
byun1219 저의 생각에 if 절이 반응 하지 않은거 같네요..
만족 못하니 empty값이 0이 되니.
rate = empty / total
결과가 0이 나오는듯 하네요 if절 값을 바꾸어야 할꺼 같네요.
제가 알기로는 배열을 만들면 그곳의 값이 0이 있는게 아니라 개값이 있는걸로 알고 있습니다.
위에서 배열을 만들때 초기화를 한번 해주시고 만들면 님이 원하시는 값이 나올듯 하네요
2013/05/08