@Anvario0

Почему программа на СИ молчит?

задание:
В строке найти последовательности цифр, каждую из них считать числом в той системе счисления, которая соответствует максимальной цифре, заменить числа в строке символами с кодами, полученными из этих чисел. Пример: aaa010101bbb343ccc – двоичная и пятиричная системы счисления.
код:
#include <stdio.h>
#include <math.h>

int funcc(char a[]) {
	int length = strlen(a);
	printf("length = %d\n", length);
	char num[255];
	int w;
	int check = 0;
	for (int i = 0; i < length; i++)
	{
		w = atoi(num);
		if (a[i] == '0') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '1') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '2') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '3') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '4') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '5') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '6') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '7') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '8') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		if (a[i] == '9') {
			num[i] = a[i];
			continue;
			check = 1;
		}
		else {
			int secondw;
			secondw = w;
			if (check == 1) {
				printf("w = %d\n", w);
				int a = 0;
				while (w > 0) {
					int b = w % 10;
					if (b > a) {
						a = b;
					}
					w /= 10;
				}
				a++;
				printf("sistema schisleniya = %d\n", a);
				int ssm = 0;
				int u = 0;
				while (secondw > 0) {
					ssm += secondw % 10 * pow(a, u);
					secondw /= 10;
					u++;
				}
				printf("perevod = %d\n\n", ssm);
				check = 0;
			}
			continue;
		}
	}
}

int main()
{
	char mas[19] = "010101bbb343ccc";
	funcc(mas);
}

но программа выдаёт только длину массива. Почему?
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы