Не могу разобраться с преобразованием из целого в число с плавающей - C (СИ)
Формулировка задачи:
Вот есть код,который должен рассчитать каждое значение массива в процентах от их суммы.
Проблема описана ниже в коде.
К стати,если аргумент функции типа double,а передаваемый ей типа int будет авт.вызвано преобразование типов?
#include <cstdlib> #include <iostream> using namespace std; double* FindInProc(int x,int max); int* FindMax(int *Arr,int *Count); int main(int argc, char *argv[]) { int i, n; printf("Enter n: "); scanf("%d",&n); int a[n]; for (i=0;i<n;i++) { printf("Enter a[%d]: ",i); scanf("%d",&(a[i])); } int max = *FindMax(a,&n); double proc; proc = *FindInProc(1,3);//10 на 30 или на 300 работает,а 1 на 3,нет..в чем проблема? printf("\n Print %0.2f \n",proc); for(int j=0;j<n;j++) { // proc = *FindInProc(a[j],max); // printf("# of arr %d \t WithValue %d \t InProc= %0.3f \n",j,a[j],proc); } system("PAUSE"); return EXIT_SUCCESS; } int* FindMax(int *Arr,int *Count) { int temp = Arr[0]; for(int i=0;i<*Count;i++) { if(Arr[i] > temp) temp = Arr[i]; printf("a[%d]: %d\n",i,Arr[i]);//ГІГіГІ ðóãГ*ГҐГІГ±Гї } printf("Temp= :%d\n ",temp); return &temp; } double* FindInProc(int x,int max) { double i = (x/max)*100.0; return &i; }
Решил вопрос явным преобразованием типов.
double i = ((((double)x)/((double)max)))*100.0;
Решение задачи: «Не могу разобраться с преобразованием из целого в число с плавающей»
textual
Листинг программы
double* FindInProc(int x,int max) { double i = (x/max)*100.0; return &i; }
Объяснение кода листинга программы
В данном коде:
- Входит значение переменной
x
типаint
(целое число). - Входит значение переменной
max
типаint
(целое число). - Вычисляется значение переменной
i
типаdouble
(число с плавающей точкой) как результат деленияx
наmax
, умноженный на 100.0. - Возвращается указатель на переменную
i
. Таким образом, функцияFindInProc
принимает два целых числа, вычисляет среднее значение между ними и возвращает указатель на число с плавающей точкой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д