Код перестает работать, если его оформить в виде функции - C (СИ)
Формулировка задачи:
Допустим у меня некая программа
Работает она верно, все в порядке, но как только я хочу использовать свою функцию, она работает неверно. Выводит нули. Объясните, пожалуйста, господа присяжные, почему?
#include <stdio.h> #include <stdlib.h> void s4et(double,double); int main(void) { double h=0,c=0; printf("Hello world!\n"); h=c+25; c=h+4;*/ printf("a=%lf\tb=%lf",h,c); return 0; }
#include <stdio.h> #include <stdlib.h> void s4et(double,double); int main(void) { double h=0,c=0; printf("Hello world!\n"); s4et(h,c); printf("a=%lf\tb=%lf",h,c); return 0; } void s4et(double a,double b) { a=b+25; b=a+4; }
Решение задачи: «Код перестает работать, если его оформить в виде функции»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> void s4et(double,double); int main(void) { double h=0,c=0; printf("Hello world!\n"); s4et(&h,&c); printf("a=%lf\tb=%lf",h,c); return 0; } void s4et(double* a,double* b) { *a=*b+25; *b=*a+4; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h и stdlib.h.
- Объявление функции s4et с двумя аргументами типа double и двумя указателями на double.
- В функции main создаются две переменные типа double: h и c, и инициализируются значением 0.
- Вывод сообщения
Hello world!
. - Вызов функции s4et, в которую передаются адреса переменных h и c.
- Вывод значений переменных h и c с помощью функции printf.
- Возврат 0 из функции main, что означает успешный конец работы программы.
- В функции s4et происходит приведение указателей на double к типу double и запись в них новых значений.
- Значение переменной a увеличивается на 25, а значение переменной b на 4.
- Значение переменной a записывается в переменную b, а значение переменной b записывается в переменную a.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д