나는 다음과 같은 프로그램이 있습니다 : 아직
./standard <data.txt> results.txt
:
파일 끝에 숫자를 읽는 방법?
1.0
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
프로그램 컴파일 후, 실행 :
#include <stdio.h> // printf, scanf definitions //
#include <math.h> // sqrt function //
int main(void)
{
double number; // input- a number of a set //
double avg; // output - average //
double sdev; // output - standard deviation //
double numSq; // output - input squred //
int count = 0; // number of numbers counter //
int status; // status of scanf function //
avg = 0;
numSq = 0;
do{
status = scanf("%lf", &number);
// Testing Purposes //
// printf("%f\n", number);
if (status == 1 && number !=EOF)
{
if (number >=0)
{
avg += number;
numSq += number * number;
count +=1;
}
else if(number <0)
{
avg -= number;
numSq += (number * number);
count +=1;
}
}
// Make an else for negative numbers and if scanf fails //
}
while (number !=EOF);
avg = avg/count;
numSq = numSq/count;
sdev = sqrt(numSq - (avg * avg));
printf("The average is %.4f \n", avg);
printf("The standard deviation is %.4f \n", sdev);
return 0;
}
가 나는 또한 포함 data.txt
라는 텍스트 파일을을 아무 반응이 없습니다! 이 그림과 같이 깜박이는 점이있는 빈 터미널은 다음을 나타냅니다.
내 생각 엔 프로그램이 루프에 고정되어 있지만 그 이유는 무엇입니까? 어떻게 해결할 수 있을까요? number
와 EOF
사이
도움을 주셔서 감사하지만 여전히 문제가 해결되지 않습니다. –
저에게 맞습니다. 첫 번째 테스트 (if에서)를 제거하고 두 번째 테스트 (while)를 변경하십시오. – Mat
정말 고마워요. –