쓰레기값이 안나오게 하는 방법
조은
질문 제목 : 질문 내용 :
#includestdio.h
#includemath.h
#define max 100
void main()
{
int n, x[max], i, j, rank[max], sum=0, temp, range, ssum1=0, ssum2=0, ssum3=0;
float mean, var1, var2, var3, sd1, sd2, sd3;
printf(이것은 입력한 데이터에 대한 기초통계량을 구하는 프로그램입니다.\n\n);
printf(데이터의 갯수를 입력하세요 : );
scanf(%d,&n);
printf(\n데이터를 입력하세요 : );
for(i=0;in;i++){
scanf(%d,&x[i]);
}
printf(\n);
for(i=0;in;i++){
sum=sum+x[i];
}
printf(입력한 데이터의 총합 : %d\n,sum);
mean=(float)sum/n;
printf(입력한 데이터의 평균 : %.2f\n\n,mean);
for(i=0;in;i++)
rank[i]=1;
for(i=0;in;i++)
for(j=0;jn;j++)
if(x[i]x[j])
rank[i]++;
printf(데이터 : );
for(i=0;in;i++)
printf( %3d ,x[i]);
printf(\n);
printf(순 위 : );
for(i=0;in;i++)
printf( %3d ,rank[i]);
printf(\n\n);
for(i=0;in-1;i++){
for(j=i+1;jn;j++){
if(x[i]x[j]){
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
}
printf(데이터 배열(소팅) = );
for(i=0;in;i++){
printf( %d ,x[i]);
}
printf(\n\n);
printf(입력한 데이터의 최소값 : %d\n,x[0]);
printf(입력한 데이터의 최대값 : %d\n,x[n-1]);
range=x[n-1]-x[0];
printf(입력한 데이터의 범위 : %d - %d = %d\n\n,x[n-1],x[0],range);
for(i=0;in;i++)
ssum1=ssum1+(x[i]-mean)*(x[i]-mean);
for(i=0;in;i++)
ssum2=ssum2+(x[i]*x[i]);
for(i=0;in;i++)
ssum3=ssum3+(x[i]*x[i]);
var1=float(ssum1/(n-1));
sd1=sqrt(var1);
var2=float(ssum2-(n*mean*mean))/(n-1);
sd2=sqrt(var2);
var3=float((ssum3-(sum*sum/n))/(n-1));
sd3=sqrt(var3);
printf(입력한 데이터의 분산(1) : %.2f\n,var1);
printf(입력한 데이터의 표준편차(1) : %.2f\n\n,sd1);
printf(입력한 데이터의 분산(2) : %.2f\n,var2);
printf(입력한 데이터의 표준편차(2) : %.2f\n\n,sd2);
printf(입력한 데이터의 분산(3) : %.2f\n,var3);
printf(입력한 데이터의 표준편차(3) : %.2f\n\n,sd3);
}
여기에 a나 0을 치면 쓰레기 값이 나와요
어떻게 하면 되나요??
초보여서 상세하게 설명부탁드립니다.