>

부동 소수점 값을 인쇄하도록 프로그램을 만들려고합니다. 나는 %f 를 넣어 보았습니다 , 그리고 그것은 같은 번호를 주었지만 끝에 0을주었습니다. 내 함수 정의에서 temp 를 만들려고했습니다.  두 배이지만 "표현식에는 정수 유형이 있어야합니다."

#include <stdio.h> 
int modifyIntegral();
int main() {
    int value;
    value = modifyIntegral();
    printf("The Updated value : %d\n", value);   
}
int modifyIntegral() {
    double value;
    double temp;
    scanf_s("%d", &value);
    temp = (value < 0) ? -value : value;
    if (temp % 10 > temp / 100 % 10) {
        temp += -temp % 10 + temp / 100 % 10;
    }
    else {
        temp += 100 * (temp % 10 - temp / 100 % 10);
    }
    return (value < 0) ? -temp : temp;
}

  • 답변 # 1

    모듈러스 (%) 연산자는 이중으로 사용할 수 없습니다.

  • 답변 # 2

    프로그램에 많은 문제가 있습니다.

    먼저 %  는 정수 연산자이므로 부동 소수점 유형에는 사용할 수 없습니다. fmod() 사용  대신

    둘째, 당신은 value 를 선언   double 로  하지만 정수로 읽습니다

    scanf_s("%d", &value);
    
    

    이것은 정의되지 않은 행동을 일으킬 것입니다

    변환해야하는 것이 무엇인지 이해하지 못합니까? 귀하와 같은 작업을 수행 할 수 있으며 정수로 수행해야합니다.

  • 이전 css - Chrome과 Firefox에서 z- 색인을 다르게 렌더링하는 이유는 무엇입니까?
  • 다음 jsonschema - AJV의 "select/selectCases"키워드와 함께 열거 형 사용