Вывести на экран значение указателя Р2 и значение на которое он ссылается - C (СИ) (77754)
Формулировка задачи:
Помогите , пожалуйста...
Присвоить раз именованному указателю на тип Р1 значение арифметиче-ского выражения АВ включающего указатели на типы Р2 и Р3. Арифметическое выражение реализовать в виде функции возвращающей указатель на тип Р1. Вывести на экран значение указателя Р2 и значение на которое он ссылается.
Р1 - double
Р2 - int double
Р3 - double
АВ - cos(p2/p3)
#include <stdio.h> #include <conio.h> #include <math.h> int main() { double *ab(int *,double *); double *p1; int *p2; double *p3; fflush(stdin); p1=new double; p2=new int; p3=new double; printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p1); printf("Vvedite peremennuyu tipa int:"); scanf("%i",p2); printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p3); p1=ab(p2,p3); printf("&p1= %p p1=%4lf\n",p1,*p1); printf("&p2= %p p2=%4i\n",p2,*p2); printf("&p3= %p p3=%4lf\n",p3,*p3); getch(); } double *ab(int *p2,double *p3) { double *res; *res=double(cos(p2/p3)); return res; }
Методом тыка , получилось.. Правильно ли?)
#include <stdio.h> #include <conio.h> #include <math.h> int main() { double *ab(int *,double *); double *p1; int *p2; double *p3; fflush(stdin); p1=new double; p2=new int; p3=new double; printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p1); printf("Vvedite peremennuyu tipa int:"); scanf("%i",p2); printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p3); p1=ab(p2,p3); printf("&p1= %p p1=%4lf\n",p1,*p1); printf("&p2= %p p2=%4i\n",p2,*p2); printf("&p3= %p p3=%4lf\n",p3,*p3); getch(); } double *ab(int *p2,double *p3) { double *res; *res=double(cos(*p2/ *p3)); return res; }
Решение задачи: «Вывести на экран значение указателя Р2 и значение на которое он ссылается»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <math.h> double *ab(int *,double *); int main() { double *p1; int *p2; double *p3; fflush(stdin); p1=new double; p2=new int; p3=new double; printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p1); printf("Vvedite peremennuyu tipa int:"); scanf("%i",p2); printf("Vvedite peremennuyu tipa double:"); scanf("%lf",p3); *p1 = *ab(p2,p3); // В задании именно это printf("p1= %p *p1=%4lf\n",p1,*p1); printf("p2= %p *p2=%4i\n",p2,*p2); printf("p3= %p *p3=%4lf\n",p3,*p3); getch(); } double *ab(int *p2,double *p3) { double *res = new double; *res=double(cos(*p2/ *p3)); return res; }
Объяснение кода листинга программы
- В функции main() объявлены три указателя: p1, p2 и p3, все они указывают на типы данных double и int.
- С помощью функции scanf() вводятся три значения: два целых числа и одно число с плавающей точкой.
- Эти значения сохраняются по адресам, на которые указывают соответствующие указатели.
- В строке p1 = ab(p2,p3); указатель p1 передает свои координаты в функцию ab(), которая принимает два указателя, p2 и p3, и возвращает указатель на результат вычисления функции cos().
- Результат вычисления функции cos() сохраняется по адресу, на который указывает возвращаемый указатель функции ab().
- Результат вычисления функции cos() копируется в переменную, на которую указывает указатель p1.
- С помощью функции printf() выводятся на экран значения всех трех указателей и значение, на которое указывает указатель p1.
- В конце программы с помощью функции getch() приостанавливается выполнение программы до нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д