Указатели - C (СИ)
Формулировка задачи:
Ввести с клавиатуры четыре числа: A, B, C, D. Вычислить:
A + B + C + D, если A, B, C, D не равны между собой;
(A + B) * (C + D), если A, B и C, D попарно равны;
4*A, если A, B, C, D между собой равны;
(A - B) * (C -D), в других случаях.
Решить задачу с использованием указателей. Верно?
#include#include int main() { int A,B,C,D,*p1,*p2,*p3,*p4; clrscr(); puts("Vvedite 4 4icla:\n"); scanf("%d%d%d%d",A,B,C,D); if(A!=B!=C!=D) *p1=A+B+C+D; if(A==B&&C==D) *p2=(A+B)*(C+D); if(A==B==C==D) *p3=4*A; else *p4=(A-B)*(C-D); printf("%d\n%d\n%d\n%d",*p1,*p2,*p3,*p4); getch(); }
Решение задачи: «Указатели»
textual
Листинг программы
#include <stdio.h> int foo (int a, int b, int c, int d) { if (a != b && a != c && a != d && b != c && b != d && c != d) return a+b+c+d; else if (a == b && a == c && a == d) return 4*a; else if (a == b && c == d) return (a+b)*(c+d); else return (a-b) * (c-d); } int main (void) { int a, b, c, d; printf("a = "); scanf("%d", &a); printf("b = "); scanf("%d", &b); printf("c = "); scanf("%d", &c); printf("d = "); scanf("%d", &d); printf("result: %d\n", foo(a, b, c, d)); return 0; }
Объяснение кода листинга программы
- Включаем библиотеку stdio.h для работы с функциями ввода-вывода
- Определяем функцию foo(int a, int b, int c, int d) которая принимает 4 целых числа в качестве параметров
- Внутри функции foo(int a, int b, int c, int d) проверяем условие: a != b && a != c && a != d && b != c && b != d && c != d
- Если условие истинно, то возвращаем сумму a+b+c+d
- Если условие не выполняется, то проверяем следующее условие: a == b && a == c && a == d
- Если условие истинно, то возвращаем 4*a
- Если и это условие не выполняется, то проверяем последнее условие: a == b && c == d
- Если условие истинно, то возвращаем (a+b)*(c+d)
- *Если ни одно из условий не выполняется, то возвращаем (a-b) (c-d)**
- В функции main(void) объявляем 4 переменные типа int: a, b, c, d**
- С помощью функции scanf() считываем значения для каждой переменной: printf(
a =
); scanf(%d
, &a); printf(b =
); scanf(%d
, &b); printf(c =
); scanf(%d
, &c); printf(d =
); scanf(%d
, &d); - Вызываем функцию foo(a, b, c, d) и выводим результат на экран с помощью функции printf(): printf(
result: %d\n
, foo(a, b, c, d));** - Возвращаем 0 из функции main(void), чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д