c언어 코딩 오류 .....

c언어 코딩 오류 .....

작성일 2024.05.16댓글 1건
    게시물 수정 , 삭제는 로그인 필요

c언어 코드를 짜고 있는데 값이 안나오는 문제가 발생했는데
도저히 원인을 모르겠는데 도와주세요ㅜㅜㅜㅜ


float speed_LPF;
float speed_LPF_temp;

값의 초기화는 모두 잘 되어 있는 상태입니다. 

void calc_spd(void)
{
(생략)
speed_LPF = speed_LPF_temp + 0.015 * 0.3 ;
speed_LPF_temp = 0.015 * 0.3 + 0.97 * speed_LPF;
}

일정 주기로 속도계산이 반복해서 이루어져서 speed_LPF와 speed_LPF_temp라는 값을 얻고 싶은데

speed_LPF = speed_LPF_temp + 0.015 * 0.3 ;
speed_LPF_temp = 0.015 * 0.3 + 0.97 
여기까지 코드를 작성하면 값은 잘 나옵니다. 

speed_LPF = speed_LPF_temp + 0.015 * 0.3 ;
speed_LPF_temp = 0.015 * 0.3 + 0.97 * speed_LPF; 
그러나 문제는 이렇게 코드를 작성하는 순간 두 변수의 값이 모두 안나오는 문제가 계속해서 발생하는데 도저히 원인과 해결방법을 모르겠습니다. 

그리고 반대로 이렇게 작성하면 값이 모두 잘 나옵니다. 
speed_LPF = 0.015 * 0.3 ;
speed_LPF_temp = 0.015 * 0.3 + 0.97 * speed_LPF; 

그러나 아래와 같이 작성하는 순간 두 값 모두 안나오는 문제가 발생합니다. 
speed_LPF = speed_LPF_temp + 0.015 * 0.3 ;
speed_LPF_temp = 0.015 * 0.3 + 0.97 * speed_LPF;

혹시 해결방법을 아시는 분은 한번만 도와주세요ㅜㅜㅜㅜ




#c언어 코딩 사이트 #c언어 코딩도장 #c언어 코딩 #c언어 코딩 연습 사이트 #c언어 코딩 프로그램 #c언어 코딩테스트 #c언어 코딩 앱 #c언어 코딩테스트 예제 #c언어 코딩테스트 준비 #c언어 코딩도장 pdf

profile_image 익명 작성일 -

질문자님, 설명해주신 문제를 해결하기 위해 코드 분석을 진행해보겠습니다.

기본적으로, `speed_LPF`와 `speed_LPF_temp` 변수들이 적절하게 초기화되었다고 가정하고 문제를 진단해보겠습니다. 문제는 코드에서 두 변수의 값을 계산하는 순서와 그 방식에 있는 것 같습니다.

다음과 같은 경우를 살펴보겠습니다:

1. 값이 잘 나오는 경우:

speed_LPF = speed_LPF_temp + 0.015 * 0.3 ; speed_LPF_temp = 0.015 * 0.3 + 0.97 ;

2. 값이 안 나오는 경우:

speed_LPF = speed_LPF_temp + 0.015 * 0.3 ; speed_LPF_temp = 0.015 * 0.3 + 0.97 * speed_LPF;

값이 잘 나오는 경우와 안 나오는 경우의 차이를 분석해 보면, `speed_LPF_temp`를 계산할 때 `speed_LPF`를 사용하느냐 여부가 문제의 원인으로 보입니다.

### 문제의 원인

`speed_LPF`를 계산한 다음 그 값을 `speed_LPF_temp`를 계산할 때 사용하게 되면, `speed_LPF_temp`는 이전에 정의된 `speed_LPF` 값에 의존하게 됩니다. 따라서, `speed_LPF`와 `speed_LPF_temp`가 서로 의존적으로 값을 변경하면서 예상치 못한 결과가 발생할 수 있습니다.

### 해결 방법

변수 간의 의존성을 줄여서 문제를 해결할 수 있습니다. 계산 순서를 변경하거나 중간 변수를 사용하여 값을 저장한 후 계산하는 방법을 사용할 수 있습니다.

#### 중간 변수 사용하기

void calc_spd(void) { float temp_speed_LPF = speed_LPF_temp + 0.015 * 0.3; // 중간 변수로 값을 계산 speed_LPF_temp = 0.015 * 0.3 + 0.97 * temp_speed_LPF; // 중간 변수를 사용하여 계산 speed_LPF = temp_speed_LPF; // 중간 변수를 최종 speed_LPF에 할당 }

이렇게 하면 `speed_LPF`와 `speed_LPF_temp`의 값이 상호 의존하지 않게 되어 문제가 해결될 것입니다.

### 결론

코드에서 변수 간의 의존성을 줄이는 것이 중요합니다. 중간 변수를 사용하여 계산 과정을 나누는 방법이 효과적일 것입니다. 위의 예시대로 코드를 수정하여 다시 실행해보시기 바랍니다.

C언어 코딩 오류를 해결해주세요.

... C언어 과제를 위해 코드를 짜고 있었는데, 잘... 입력받게 코딩한다. (scanf 이용) - 판별식 출력 판별식 D... 실행해보니까 경고 10개하고 오류 1개 떴어요. (아래...

c언어 코딩 오류 .....

c언어 코드를 짜고 있는데 값이 안나오는 문제가 발생했는데 도저히 원인을 모르겠는데 도와주세요ㅜㅜㅜㅜ float speed_LPF; float speed_LPF_temp; 값의 초기화는...

c언어 코딩 오류

... if (m < 2 || m > 5) { printf(">>> 입력 오류(조건 2 <= m... if (n < 2 || n > 5) { printf(">>> 입력 오류(조건 2 <= n... 스크린샷은 오류 메시지의 전체적인 내용을...

c언어 코딩 오류 ....

c언어 코드를 짜고 있는데 값이 안나오는 문제가 발생했는데 도저히 원인을 모르겠는데 도와주세요ㅜㅜㅜㅜ float speed_LPF; float speed_LPF_temp; 값의...

c언어 코딩 오류

... 자꾸 오류가 뜨네요. #include <stdio.h... if (!isPrime(p) || !isPrime(q)) { printf("오류... if (plainText >= N) { printf("오류: 입력된 값이 범위를...

c언어 코딩오류

... return 0; } 다음과같이 성적처리프로그램을 만들었는데 오류가... 코딩하다 모르면 물어봐! 코딩티처 운영자 박기완입니다. 입력하는 부분의...

C언어 코딩 오류 질문

저렇게 에러가 뜨는데 어떤게 잘못된걸까요 아마 컴파일러가 좀 깐깐한 애면 메인문 void로 써도 잡아내거든요? 근데요 아마 얘는 이경우인거 같아요 void main에서 int...