В чём ошибка? - 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
будет использоваться в дальнейшей работе программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д