일단 (a-b)*(b+c)*(c%a)를 연산하려는 거구요.
비주얼 C++ 컴파일러로 한거구요.
대략 이상한 부분은 두가지입니다. ㅇ _ㅇ;;
일단 프로그래밍한걸 말씀드리면.
#include <stdio.h>
int main(void)
{
int val1;
int val2;
int val3;
int result;
printf("이 프로그램은 (a-b)*(b+c)*(c%a)의 연산 결과를 출력합니다. n");
printf("정수 a를 입력해 주세요. n");
printf("정수 a : ");
scanf("%d", &val1);
printf("정수 b를 입력해 주세요. n");
printf("정수 b : ");
scanf("%d", &val2);
printf("정수 c를 입력해 주세요. n");
printf("정수 c : ");
scanf("%d", &val3);
result=(val1-val2)*(val2+val3)*(val3%val1);
printf("(%d-%d)*(%d+%d)*(%d%%d)의 연산 결과는 %d입니다. n", val1, val2, val2, val3, val3, val1, result);
return 0;
}
여기서 일단 아무 error도, warning도 뜨지 않는데요.
printf 첫번째 (c%a)가 출력시에는 (ca)로 출력되구요.
printf 마지막 (%d%%d)가 출력시에는 (c값%d)이렇게 출력되는군요. (-_ -;;)
printf 마지막에서 제가 의도한건 (c값%a값)인데 이렇게 나오네요.
왜 이런 현상이 일어나는거고 해결방안에 대해서도 말씀해주세요.
혹시 제가 이해하지 못하는 범위라면 적어라도 두었다가 이해할 수 있을 정도가 되었을 때
한번 다시 이 문제를 보려구요. ^ ㅁ^
그럼 부탁드리겠습니다. ; ㅁ;
%는 뒤에 %d, %c, %f 등의 변수값을 출력을 쓸때 사용하기 때문에 화면에 %를 출력하기 위해서는 %% 를 써주어야 %가 출력이 됩니다.
마지막으로 를 출력하기 위해서는 , "를 출력하기 위해서는 " 를 넣어줘야 값이 나오지요.
즉 (%d%%d)가 아니라 (%d%%%d)를 해줘야 제대로 된 출력값이 나옵니다.