안녕하세요 C언어 관련해서 질문 올립니다.

이번에 c프로그래밍을 처음 배우는 대학생입니다. 고민해 보았는데 예제가 잘 안풀려서 이렇게 글 남깁니다. Write a C Program that reads the three floating point numbers and accumulate them whenever it reads a number.

숫자 세 개를 입력받고 입력될 때마다 누적하는 C프로그램을 작성하시오.

Example) The underlined numbers are the input of the user. (밑줄은 사용자의 입력)

Input the first number: 10(사용자 입력)

x = 10.000000, sum = 10.000000

Input the second number: 25(사용자 입력)

x = 25.000000, sum = 35.000000

Input the third number: 40(사용자 입력)

x = 40.000000, sum = 75.000000

제 생각으로는 x가 수학으로 따지면 변량이고, 누적됨을 이용해서, 해당 문제를 풀어야 하는데요.
아직 배운지가 얼마 안되서, 누적됨을 어떻게 간결하게 표현할 수 있는지 궁금합니다.
아래는 제가 알고리즘을 설계하고, 제가 제시한 해당 솔루션입니다.
변수 설정하고, 누적이라는 개념을 아직 잘 적용하지 못해서 그런 것 같습니다.
또한 제가 문제의 의도를 제대로 파악하고 있는지도 의심이 갑니다.
여러 조언 부탁드립니다.

float sum = 0;
float first_number = 0;
float second_number = 0;
float third_number = 0;

//첫번째 숫자 물어보기 -> 첫번째 숫자 스캔하기 -> 첫번째 숫자를 소숫점 아래 0이 6개 나오도록 프린트하기 -> 누적해서 덧셈하기 //
printf(“input the first number : \n”);
scanf("%f.000000", &first_number);
sum = (first_number)
printf("%f\n", sum);
//두번째 숫자 물어보기 -> 두번째 숫자 스캔하기 -> 두번째 숫자를 소숫점 아래 0이 6개 나오도록 프린트하기 -> 누적해서 덧셈하기//
printf(“input the second_number : \n”);
scanf("%f.000000", &second_number);
sum = (first_number + second_number)
printf("%f\n", sum);
//셋 번째 숫자 물어보기 -> 세번째 숫자 스캔하기 -> 세번째 숫자를 소숫점 아래 0이 6개 나오도록 프린트하기 -> 누적해서 덧셈하기 //
printf(“input the third number : \n”);
scanf("%f.000000", &third_number);
sum = (first_number + second_number + third_number);
printf("%f\n", sum);
return 0;}

Input the first number:
x = 10.000000, sum = 10.000000
Input the second number:
x = 20.000000, sum = 30.000000
Input the third number:
x = 30.000000, sum = 60.000000

x자체가 변수로 설정-> x(변량)의 값을 누적하는 형식으로 x = sum으로 규정!

sum = sum + number

줄여서

sum += number

int i;
float number, sum = 0;
for( i = 1; i <= 3; ++i )
{
    printf( "input the %dth number : \n", i );
    scanf( "%f", &number );
    sum += number;
    printf( "%.6f\n", sum );
}

프로그래밍을 안하면 제일 간단합니다

float num, sum = 0;
for (int i = 1; i <= 3; ++i) {
    printf("input the %dth number : \n", i);
    scanf("%f", &num);
    printf("%.6f\n", sum += num);
}

의미상으로는 동일합니다만 가독성은 어떨지 모르겠습니다ㅎㅎ

따옴표 수정해 드렸읍니다

1 Like

그거 글쓴이의 코드 복붙해서 수정한거라 그럼 ㅋㅋ

1 Like