Вывести на экран значение указателя Р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;
}

Объяснение кода листинга программы

  1. В функции main() объявлены три указателя: p1, p2 и p3, все они указывают на типы данных double и int.
  2. С помощью функции scanf() вводятся три значения: два целых числа и одно число с плавающей точкой.
  3. Эти значения сохраняются по адресам, на которые указывают соответствующие указатели.
  4. В строке p1 = ab(p2,p3); указатель p1 передает свои координаты в функцию ab(), которая принимает два указателя, p2 и p3, и возвращает указатель на результат вычисления функции cos().
  5. Результат вычисления функции cos() сохраняется по адресу, на который указывает возвращаемый указатель функции ab().
  6. Результат вычисления функции cos() копируется в переменную, на которую указывает указатель p1.
  7. С помощью функции printf() выводятся на экран значения всех трех указателей и значение, на которое указывает указатель p1.
  8. В конце программы с помощью функции getch() приостанавливается выполнение программы до нажатия клавиши.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы