Взятие mod плавающего числа в C
Привет, ребята.Я попытался взять мод числа с плавающей точкой, чтобы понять, является ли оно целым числом или нет.Я хочу вывести число с плавающей точкой как целое число, если оно не имеет никакого остатка.Я имею в виду, если результат равен "4.00(float)" Я хочу напечатать "4".С другой стороны,если это число, например 1.50, я хочу напечатать то же самое снова.
Я предполагаю, что в библиотеке math.h есть функция "modf", чтобы взять остаток от x/y, но она не работает :(
(другие части работают без каких-либо проблем)
#include <stdio.h> #include <stdlib.h> #include <math.h> float operation(float num1,char op,float num2) { float res; float c=modf(res,1);//Error is here.I tried to take remaining from result/1. if(op=='+') { res=num1+num2; } else if(op=='-') { res=num1-num2; } else if(op=='*') { res=num1*num2; } else if(op=='/') { res=num1/num2; } else { printf("Error!Something wrong about operator."); } if(c==0) { printf("=%0.2f",res);//if remainder=0 that means it's an integer. } else if(c!=0) { printf("%d",(int)res);//if remainder is not 0 that means it's a float. } } main() { printf("Welcome to Basic Calculator---Made by Cevik Cukurova\n"); Start: int dec; float num1,num2; char op; printf("Please enter the operation.\n "); scanf("%f",&num1); scanf("%c",&op); scanf("%f",&num2); operation(num1,op,num2); printf("\n Press 1 to enter another operation."); scanf("%d",&dec); if(dec==1) { goto Start; } return 0; }
Что я уже пробовал:
Как я уже сказал, я уже пробовал функцию modf.
Richard MacCutchan
Когда вы получаете ошибку, действительно имеет смысл точно объяснить, что это за ошибка.
KarstenK
Выведите на экран дополнительную пользовательскую информацию о вводе и операторе.
Я бы использовал "пространство" для другой операции ;-)