В чём ошибка? - C (СИ) (69628)
Формулировка задачи:
Всем привет у меня вопрос, есть код и в нём нужно разделить 2 переменные типа float с использованием указателя. Но при делении у меня выводит значение 0.000. Что я сделал не так ?
#include <stdio.h>
#include <stdlib.h>
void Zusatz (int *a, int *b, int *c)
{
*c=*a+*b;
}
void Subtraktion (int *a, int *b, int *c)
{
*c=*a-*b;
}
void Multiplikation (int *a, int *b, int *c)
{
*c=(*a)*(*b);
}
void Teilung (int *a, int *b, float *c)
{
*c=(*a)/(*b);
}
void Exponent (int *a, int *b, int *c)
{
int i;
*c = 1;
for(i = 1; i <= *b; ++i)
{
*c *= *a;
}
}
int main(void)
{
int a,b,c;
printf("a = ");
scanf("%d",&a);
printf("b = ");
scanf("%d",&b);
Zusatz (&a, &b, &c);
printf("\n%d", c);
Subtraktion (&a, &b, &c);
printf("\n%d", c);
Multiplikation (&a, &b, &c);
printf("\n%d", c);
Teilung (&a, &b, &c);
printf("\n%.2f", c);
Exponent (&a, &b, &c);
printf("\n%d", c);
return 0;
}Решение задачи: «В чём ошибка?»
textual
Листинг программы
*c=(float)(*a)/(*b);
Объяснение кода листинга программы
- В данном коде происходит деление одного числа на другое и результат сохраняется в переменной
c. aиb- это указатели на числа, которые будут использованы для деления.- Тип данных переменных
aиbдолжен быть таким же, как и у переменнойc, то есть float (число с плавающей точкой). - Для выполнения деления используется операция
/. - Для приведения типов данных к нужному типу используется операция
(float). - Для доступа к значению, на которое указывает указатель, используется оператор
*. - Результат деления сохраняется в переменной
c. - Значение переменной
cбудет использоваться в дальнейшей работе программы.