Удалить у числа две цифры - самую первую и самую последнюю - C (СИ)
Формулировка задачи:
здравствуйте!
почти сделал программу, позволяющая убирать у числа две цифры-самую первую и самую последнюю.
но никак не могу сделать счетчик, который бы считал числа.(n-количество чисел). в данной программе его приходиться вводить, а надо чтобы этого не было.
помогите пожалуйста со счетчиком цифр в числе.
вот программа:
___________________________________________
заранее спасибо.
#include<conio.h>
#include<stdio.h>
void main()
{
int a,b,c=10,n,i;
printf("a: ");
scanf("%d",&a);
printf("n: ");
scanf("%d",&n);
{
for(i=1;i<n-1;i++) c=c*10;
for(i=1;i<n;i++)
if(i==1) b=a%c;
if(i==n) b=b/10;
}
printf("a:%d\n",a);
printf("b:%d\n",b);
_getch();
}Решение задачи: «Удалить у числа две цифры - самую первую и самую последнюю»
textual
Листинг программы
#include <stdio.h>
/* убирать у числа две цифры-самую первую и самую последнюю */
size_t powerOf(int d){
size_t pwr = 10;
while ( d / pwr )
pwr *= 10;
return pwr / 10;
}
int main(void){
int num;
size_t pwr;
while ( 1 ){
printf("Number: ");
if ( scanf("%d", &num) != 1 || !num )
break;
pwr = powerOf(num);
num = (num - num / pwr * pwr) / 10;
printf("Result: %d\n", num);
}
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Функция
powerOfпринимает целое числоdи возвращает степень числа 10, которую нужно возвести в полученную степень, чтобы получить числоd. - В функции
mainмы считываем число с помощьюscanfи сохраняем его в переменнойnum. - Затем мы вызываем функцию
powerOf, передавая ей числоnum, чтобы получить степень числа 10, которую нужно использовать для форматирования числа. - Затем мы вычисляем новое значение
num, удаляя самую первую и последнюю цифры. Для этого мы вычитаемnum / pwr * pwr, что дает нам число без первой и последней цифры, и затем делим на 10, чтобы получить новое значениеnum. - Мы продолжаем этот процесс до тех пор, пока пользователь не введет недействительное число или не решит остановиться.
- Наконец, мы выводим результат на экран с помощью
printf. - В конце функции
mainвозвращаем 0, чтобы указать, что программа успешно завершилась.