본문 바로가기

scanf

문제5. 온도 변환표 출력 문제:다음은 화씨온도를 섭씨온도로 변환하는 프로그램이다.다음 프로그램을 실행시켜보고, 발생하는 문제와 원인을 설명하고 소스를 수정하시오. 단, 공식은 다음을 참고하라. 소스: #include int main(void){ double f_temp; double c_temp; printf("Fahrenheit(F) : "); scanf(" %lf", &f_temp); c_temp = 5 / 9 * (f_temp - 32); printf("Celsius(C) : %lf", c_temp); return 0; } 설명: 문제: 어느 수에게나 0을 출력한다. 원인: c_temp에 넣는 계산식을 살펴보면, 5 / 9가 원인임을 알 수 있다.정수 끼리의 연산이기 때문에 해당 연산 결과는 0이 되는 것이다. 그러므로 어.. 더보기
문제3. 원의 면적 계산 문제:원의 반지름을 입력받아 원의 면적과 원의 둘레를 출력하는 프로그램을 작성하시오.단, 변수의 자료형은 double로 하시오. 화면: 해결 방안: 1. 반지름, 원주, 면적을 의미하는 double형 변수 3개를 선언한다.2. 표준입력(scanf)로 double 형(%lf)을 입력받는다.3. 각 값을 계산하여 원주, 면적에 대입한다.4. 이후 해당 값들을 출력한다. 또는, 원주, 면적 변수를 선언하지 않고 printf 자체에 계산식을 넣어 출력해줄 수도 있다. 소스: #include int main(void){ double radius, area, circumference; printf("Radius: "); scanf(" %lf", &radius); area = 3.14 * radius * radius.. 더보기
문제2. 정수 3개 더하기 문제: 사용자로부터 세 개의 정수를 입력받은 후, 평균값을 계산하여 화면에 출력하는 프로그램을 작성하시오.평균은 정수형으로 표시하지 말고, 실수형으로 출력하시오. 화면: 해결 방안: scanf로 세 정수를 입력받는다. int형 변수 sum에 이 정수들을 더하고, 3.0으로 나눈 것을 출력한다. 이때 유의 해야할 것은, 소수자리가 발생할 수 있으므로, sum을 float형으로 강제형변환하여 3.0으로 나눈 결과를 출력한다. 또는 sum 자체를 float형으로 선언하여 강제형변환을 피할 수 있다. 소스: #include int main(void){ int input, sum = 0; printf("Please give an integer: "); scanf(" %d", &input); sum += input.. 더보기