Преобразование int в отдельные по знаковые переменные - C (СИ)
Формулировка задачи:
переменная int содержит трехзначное значение, нужно так что б каждое значение хранилось в отдельной переменной. Например int k=287, надо что б переменная int a=2, int b=8, int c=7 _ Не как не могу реализовать эту задачу, помогите _
только что пришла идея реализовать через тип string _ сейчас попробую написать _
Решение задачи: «Преобразование int в отдельные по знаковые переменные»
textual
Листинг программы
#include <stdio.h>
void parse(int k, int *a, int *b, int *c);
int main()
{
int k = 0;
int a , b, c;
a = b = c = 0;
scanf("%d", &k);
parse(k, &a, &b, &c);
printf("a = %d; b = %d; c = %d;\n", a, b ,c);
}
void parse(int k, int *a, int *b, int *c)
{
if (k >= 100 && k <= 999)
{
*a = k / 100;
*b = (k % 100) / 10;
*c = k % 10;
} else
{
*a = *b = *c = 0;
}
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку для работы с I/O функциями
- Объявляем функцию parse, которая принимает целочисленный аргумент k и указатели на три переменные типа int
- В функции main создаем переменную k со значением 0
- Объявляем три переменные типа int a, b и c со значением 0
- Считываем значение k с помощью функции scanf
- Вызываем функцию parse, передавая ей в качестве аргументов k и указатели на переменные a, b и c
- Выводим значения переменных a, b и c на экран с помощью функции printf
- В функции parse проверяем, находится ли значение k в диапазоне от 100 до 999
- Если условие выполняется, то получаем значение переменной a, вычитая из k число 100 и получаем значение переменной b, вычитая из k число 100 и получая остаток, который делится на 10
- Получаем значение переменной c, вычитая из k число 100 и получая остаток, который делится на 10
- Если условие не выполняется, то присваиваем всем трем переменным значение 0
- Возвращаем из функции parse значение 0