게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[도움,본삭금] 머리가 멍해지며 정신이 아득해집니다.
게시물ID : programmer_18427짧은주소 복사하기
작성자 : Nopl
추천 : 0
조회수 : 521회
댓글수 : 5개
등록시간 : 2016/09/13 18:00:20
옵션
  • 본인삭제금지
#include <stdio.h>
#include <math.h>
void get_date();
float cal_avg();
float cal_std();


int count = 0;
float float_num[10];

int main() {

printf("<평균과 분산 프로그램>\n");

printf("0보다 크고 100보다 작은 실수 10개를 입력하세요.(음수를 입력하면 종료됩니다)\n\n");

   get_date();
 



return 0;

}
void get_date() {

while (count < 10) {
printf("%d번째 실수(음수를 입력하면 종료됩니다)  ", (count + 1));
scanf("%f", &float_num[count]);


if (float_num[count] < 0) {
printf("음수값을 입력하셨습니다. %d번째까지 입력받은 수들의 평균값과 분산값을 구합니다.\n", count);
break;
}

else {
count++;
}
                  }
printf("카운트1. %d\n", count);
if (count =10) {
printf("카운트4. %d\n", count);
printf("10개의 실수를 입력하셨습니다좆같네. 평균값과 분산값을 구합니다.\n");
printf("카운트2. %d\n", count);
}

printf("카운트3. %d\n", count);
}
float cal_avg() {

float sum=0, avg=0;
int a;

for (a = 0; a < 10; a++) {
sum += float_num[a];
}

avg = sum /(float) count;


return  avg;

}
float cal_std() {
float ssum, sum, diff, vari, std;
int a;
ssum = 0;
for (a = 0; a < 10; a++) {
diff = float_num[a] - cal_avg();
ssum += diff*diff;
}

vari = ssum / (float)count;
std = (float)sqrt((double)vari);

return std;


}





//////////////////////////////////////////////


저 빨간색표시 부분에서

10개의 실수를 입력받으면 저게 바로뜨는데

10개실수 입력도중 음수를 눌러버리면 

카운트1에서는 중단한 현재의 카운트값이 나오는데

if문 부터의 카운트 값(2.3.4)은 갑자기 10으로 뻥튀기가 되버려서


이게 뭔지 몰라서 머리가아프고 가슴이 답답합니다..


알려주실분없나요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호