Хочу предложить пользователю ввести 3 цифры.Затем поменяйте местами первое число со вторым, второе число с третьим и третье с первым, вызвав функцию с именем «swap».
Функции в C
не могут возвращать более одного значения, поэтомуЯ решил создать структуру с указателями, которые позже я буду использовать в своей функции.Затем я создал три указателя, которые будут хранить адрес каждого из чисел, чтобы я мог разыменовать эти числа в своей функции (как показано ниже)
Number.pa = *ppb;
Number.pb = *ppc;
Number.pc = *ppa;
Вот мой код:
#include <stdio.h>
void swap(); // a = b, b = c, c = a
struct Numbers {
int *pa, *pb, *pc;
} ;
int main(void) {
struct Numbers Number; // Structure to hold the values of the three variables.
int a, b, c;
int *ppa, *ppb, *ppc;
printf("\n Please enter three integer numbers: ");
scanf("%d%d%d", &a, &b, &c);
ppa = &a; ppb = &b; ppc = &c;
swap(a, b, c, Number, *ppa, *ppb, *ppc);
printf("\n %d \t %d \t %d \n", Number.pa, Number.pb, Number.pc);
}
void swap(int a, int b, int c, struct Numbers Number, int *ppa, int *ppb, int *ppc) {
Number.pa = *ppb;
Number.pb = *ppc;
Number.pc = *ppa;
} ;