Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
hedgehog007_1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 8
1

Удалить у числа две цифры - самую первую и самую последнюю

28.03.2010, 22:17. Просмотров 763. Ответов 9
Метки нет (Все метки)

здравствуйте!
почти сделал программу, позволяющая убирать у числа две цифры-самую первую и самую последнюю.
но никак не могу сделать счетчик, который бы считал числа.(n-количество чисел). в данной программе его приходиться вводить, а надо чтобы этого не было.
помогите пожалуйста со счетчиком цифр в числе.
вот программа:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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();
}
___________________________________________
заранее спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2010, 22:17
Ответы с готовыми решениями:

Переставить первую и последнюю цифры числа n
Доброго времени суток! Дано натуральное число n. Нужно переставить первую и последнюю цифры числа...

В тексте найти самую длинную и самую короткую строки и поменять их местами
в тексте найти самую длинную и самую короткую строки и поменять их местами

Ввести n строк, найти самую короткую и самую длинную строки
Ввести n строк , найти самую короткую и самую длинную строки. Вывести найденные строки и их длину....

Переставить первую и последнюю цифры числа с помощью цикла
Дано целое положительное N. Получить число, в котором переставлены первая и последняя цифры числа N.

Поменять местами первую и последнюю цифры в записи числа
Дано натуральное число n. Поменять местами первую и последнюю цифры в записи числа. Подсчитать...

9
Зоти Сергей
229 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
28.03.2010, 22:33 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//---------------------------------------------------------------------------
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    int Value;
        cout<<"Vvedite chislo: ";
        cin>>Value;
        char Str[255];
        itoa(Value,Str,10);
        char * Str2 = new char[strlen(Str)-1];
        for(int i=1;i<strlen(Str)-1;i++)
            Str2[i-1]=Str[i];
        Str2[strlen(Str)-2]='\0';
        Value=atoi(Str2);
        cout<<Value;
        getch();
        delete [] Str2;
    return 0;
}
//---------------------------------------------------------------------------
0
hedgehog007_1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 8
28.03.2010, 22:45  [ТС] 3
Зоти Сергей, а можно без str ?
все равно спасибо)
0
AnonymC
1181 / 466 / 87
Регистрация: 23.06.2009
Сообщений: 6,381
Завершенные тесты: 1
28.03.2010, 22:52 4
Цитата Сообщение от hedgehog007_1 Посмотреть сообщение
а можно без str ?
имеете ввиду чар?Думаю нет,если тлько не стринг
0
28.03.2010, 22:52
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10494 / 6202 / 1559
Регистрация: 25.07.2009
Сообщений: 11,806
28.03.2010, 22:59 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Для чисел до 10 знаков:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#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;
}
0
Зоти Сергей
229 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
28.03.2010, 23:01 6
Расчитать n можете сл. образом:
удалите у себя scanf("%d",&n); и вклейте вместо него:
C++
1
2
3
4
5
6
7
8
9
        n=1;
        int Dec=10;
        while(true)
        {
            if(!(a/Dec))
                break;
                Dec*=10;
                n++;
        }
После этого n будет содержать кол-во цифр
1
hedgehog007_1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 8
28.03.2010, 23:13  [ТС] 7
Зоти Сергей,большое спасибо.
это именно то что мне надо.
0
mirso
527 / 345 / 45
Регистрация: 05.04.2009
Сообщений: 709
28.03.2010, 23:16 8
hedgehog007_1,
как у Зоти Сергей,
но с циклом for ( ; ; );
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()//==============================================================
{
    int x = 1234567;
    int i = 0;
 
    for ( i = 10; x/i > 10; i *= 10 );
 
    std::cout << x%i/10 << std::endl; 
 
    return 0;
}//=======================================================================
1
easybudda
Модератор
Эксперт JavaЭксперт CЭксперт С++
10494 / 6202 / 1559
Регистрация: 25.07.2009
Сообщений: 11,806
28.03.2010, 23:38 9
Раз пошла такая пьянка
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main(){
    std::string number; // ;)
    std::cout << "Number: ";
    std::cin >> number;
    number.erase(0, 1);
    number.erase(number.length() - 1);
    std::cout << "Result: " << number << std::endl;
    return 0;
}
1
hedgehog007_1
0 / 0 / 0
Регистрация: 26.03.2010
Сообщений: 8
29.03.2010, 00:04  [ТС] 10
Цитата Сообщение от Зоти Сергей Посмотреть сообщение
if(!(a/Dec))
что это обозначает?
0
29.03.2010, 00:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2010, 00:04

Определить самую дорогую и самую массовую книги
есть код. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; /* * */ struct...

Найти самую длинную строку и удалить её
Подскажите пожалуйста, где ошибки. И в правильном ли русле я иду. #include &lt;stdio.h&gt; int...

В текстовом файле удалить самую короткую строку
При решении задач должны выполняться следующие требования: - Текстовый файл формируется в любом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru