Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
2.3 Кб
Скачать
#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