Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С (для ИВТ) / Готовые лабы С / Лаба3 / laba 3 (2)
.c#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *p, c;
int *a, b;
float *x, y = 3.5;
double *m, n;
// Вывод адресов всех переменных в начале
printf("Addresses at start:\n");
printf("p: %p, c: %p\n", &p, &c);
printf("a: %p, b: %p\n", &a, &b);
printf("x: %p, y: %p\n", &x, &y);
printf("m: %p, n: %p\n\n", &m, &n);
a = &b;
printf("Enter b = ");
scanf("%d", a); // исправлено scan -> scanf
printf("a=%p\t*a=%d\tb=%d\n", a, *a, b);
p = (char*)a; // добавлено приведение типа
c = *p;
*p = *(p+3);
*(p+3) = c;
printf("p=%p\tc=%d\ta=%p\tb=%d\n", p, c, a, b);
x = &y;
printf("x=%p\t*x=%f\ty=%f\n", x, *x, y); // исправлено %e -> %f
a = (int*)x; // добавлено приведение типа
*a = (int)*x; // добавлено приведение типа
printf("a=%p\t*a=%d\tx=%p\t*x=%f\ty=%f\n", a, *a, x, *x, y);
a = &b;
y = 12345.6789; // исправлена запятая на точку
printf("x=%p\t*x=%f\ty=%f\n", x, *x, y);
p = (char*)x; // добавлено приведение типа
c = *p;
*p = *(p+3);
*(p+3) = c;
printf("p=%p\tc=%d\tx=%p\ty=%f\n", p, c, x, y);
m = &n;
printf("m=%p\t*m=%lf\tn=%lf\n", m, *m, n); // исправлено m=%lf -> n=%lf
n = 5.5;
printf("m=%p\t*m=%lf\tn=%lf\n", m, *m, n);
b = n = y = 1.7;
printf("b=%d\ty=%f\tn=%lf\n", b, y, n);
printf("*a=%d\t*x=%f\t*m=%lf\n", *a, *x, *m);
m++; // заменено m+=2; на m++;
printf("n=%lf\t&n=%p\tm=%p\n", n, &n, m); // исправлено n=%p -> &n=%p
*m = (float)*a - (float)n + (int)*x; // добавлены приведения типов
printf("m=%p\t*m=%lf\n", m, *m);
// Вывод значений всех переменных в конце
printf("\nFinal values:\n");
printf("p=%p, c=%d\n", p, c);
printf("a=%p, *a=%d, b=%d\n", a, *a, b);
printf("x=%p, *x=%f, y=%f\n", x, *x, y);
printf("m=%p, *m=%lf, n=%lf\n", m, *m, n);
system("pause");
return 0;
}
Соседние файлы в папке Лаба3
