Завтра в универе надо сдать лабу, а у меня не получается написать последнюю программу.
Вот, собственно, задача, по которой нужно написать программу:
Дано натуральное число n. Сформировать из числа n число m, удалив цифры 0 и 5 из записи числа n, оставив прежним порядок цифр в числе n.
Например: n = 1580, m = 18.
Написать программу надо с помощью циклов.
(Писать не на языке Си++, а на простом Си)
Заранее спасибо за помощь.
Другие языки программирования и технологии
Программирование на языке Си. Нужна небольшая помощь.
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <tchar.h>
#define DBUF 0x5DC0
#define SBUF 0xB
void remove_digit(char*, char*);
int main() {
char number[DBUF] = "";
char suite[SBUF] = "";
SetConsoleTitle(_T("Программа"));
printf(" Number: ");
scanf_s("%s", number, _countof(number));
printf(" Suite: ");
fflush(stdin);
scanf_s("%s", suite, _countof(suite));
remove_digit(number, suite);
printf(" Result: %s\n", number);
fflush(stdin);
getchar();
return 0;
}
void remove_digit(char* number, char* suite) {
char tmp[DBUF] = "";
int n, m, k, flag;
for (n = m = 0; number[n] != 0; ++n) {
flag = 1;
if (!isdigit(number[n])) {
number[0] = 0;
break;
}
for (k = 0; suite[k] != 0; ++k) {
if (!isdigit(suite[k])) continue;
if (number[n] == suite[k]) {
flag = 0;
break;
}
}
if (flag) {
tmp[m++] = number[n];
}
}
strcpy_s(number, DBUF, tmp);
number[m] = 0;
}

#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <tchar.h>
#define DBUF 0x5DC0
#define SBUF 0xB
void remove_digit(char*, char*);
int main() {
char number[DBUF] = "";
char suite[SBUF] = "";
SetConsoleTitle(_T("Программа"));
printf(" Number: ");
scanf_s("%s", number, _countof(number));
printf(" Suite: ");
fflush(stdin);
scanf_s("%s", suite, _countof(suite));
remove_digit(number, suite);
printf(" Result: %s\n", number);
fflush(stdin);
getchar();
return 0;
}
void remove_digit(char* number, char* suite) {
char tmp[DBUF] = "";
int n, m, k, flag;
for (n = m = 0; number[n] != 0; ++n) {
flag = 1;
if (!isdigit(number[n])) {
number[0] = 0;
break;
}
for (k = 0; suite[k] != 0; ++k) {
if (!isdigit(suite[k])) continue;
if (number[n] == suite[k]) {
flag = 0;
break;
}
}
if (flag) {
tmp[m++] = number[n];
}
}
strcpy_s(number, DBUF, tmp);
number[m] = 0;
}

Простая задача, пусть а вводимое число, а число b результат вывода:
temp = a;
mnog = 1;
b = 0;
while ( temp/10 != 0)
{
if ( temp % 10 != 8)
if (temp !=5)
b = b + mnog*temp;
mnog *= mnog*10;
temp = temp/10;
}
temp = a;
mnog = 1;
b = 0;
while ( temp/10 != 0)
{
if ( temp % 10 != 8)
if (temp !=5)
b = b + mnog*temp;
mnog *= mnog*10;
temp = temp/10;
}
сделай цикл, бери в цикле остаток от деления числа n на 10, например 1580 mod 10 будет 0, значит это число пропускаем, делим 1580 на 10, получаем 158, теперь 158 mod 10 остаток будет 8, это число подходит, умножаем на 1, и так далее, только число на которое умножаем однозначное число нужно увеличивать после каждой успешной итерации на 1, чтобы при сложении они образовывали десятки, сотни тысячи и т. д
Серега Воздвиженский
ой, число не увеличивать на 1, а в 10 раз
Похожие вопросы
- удалить все элементы, кроме имеющих заданное произведение цифр. язык си++.нужна срочная помощь
- Программирование на языке СИ с использованием подпрограммы-функции
- какую программу лучше использовать для программирования на языке Си?
- Найти число Фибоначчи, ближайшее к заданному натуральному числу N. (программирование в языке Си)
- программирование на языке си
- Язык Си. Нужна методичка хорошая, в которой на примерах и глубоко обьясняются основы. Например, сейчас буксую на
- Кто программирует на Си, нужна ваша помощь!
- Нужна небольшая помощь c++.
- Почему язык СИ такой сложный?
- Нужна помощь. На языке Си написать программку.