Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Удалить из числа вхождение первой цифры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление символов из строки http://www.cyberforum.ru/cpp-beginners/thread788170.html
Условие: Даны натуральное число N, символы s1,...,sn. Удалить из данной последовательности все группы букв вида abcd. Я начинающий программист, вот что у меня получилось: #include <iostream>...
C++ Защита от дурака. Разбор кода всем здравствуйте. Прошу помощи. такова ситуация, есть код защиты от ввода букв и отбрасывания пробелов, но не могу разобраться, он не мой. помогите разобраться. float zashita() { char si;... http://www.cyberforum.ru/cpp-beginners/thread788164.html
Возврат значения С++ C++
Hi people! Вот такое задание: 1) Реализовать заданную динамическую структуру данных, с которой можно работать через перегруженные операции. 2) Для демонстрации работы программы необходимо...
Указателю на базовый класс присвоить адрес производного класса C++
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };
C++ Текстовый файл/ Отредактировать текст, заменяя в нем повествовательные предложения восклицательными, а восклицательные – вопросительными http://www.cyberforum.ru/cpp-beginners/thread788144.html
Моя задача звучала следующим образом: " Дан текстовый файл. Отредактировать текст, заменяя в нем повествовательные предложения восклицательными, а восклицательные – вопросительными. По нажатию...
C++ Шаг в 0,5 Вычислить значение функции y={x}^{5}-\sqrt{x} При 0 \leq X \leq 5 c шагом в 0,5 Т.е. x 0 0.5 1 1.5 2 подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
17.02.2013, 23:33  [ТС]
Спасибо за подсказки, хотя мне что подсказывает что хотели чтобы массивы не использовались (ну а коллекции с++ и подавно), но попробую отдать так и узнаю что скажут. Если скажут что таки надо выворачиваться без массивов то я подниму тему, я сам изначально сделал с char массивом и копированием через strncpy, вот так:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
* 1. Дано натуральное число n. Удалить из записи числа все вхождения первой цифры.
* Подсчитать кол-во оставшихся цифр в изображении числа.
*/
 
int main()
{
    //считываем число что вводит пользователь
    int number = 0;
    printf("Enter number:\n>> ");
    scanf("%i",&number);
 
    //переводим число в строку
    char buffer[32];
    itoa(number,buffer,10);
 
    //запонимаем цифру которую нам нужно удалять из числа
    char firstSymbol = buffer[0];
 
    //удаляем первую цифру из числа
    strncpy(buffer,buffer+1,strlen(buffer));
 
    //удаляем цифры из числа если цифра совпадает с первой
    int i;
    for( i=0; i<strlen(buffer);i++)
        if(buffer[i] == firstSymbol)//если цифра такая же как и была первая цифра в числе
        {
            strncpy(buffer+i,buffer+i+1,strlen(buffer)-i);//копируем число со сдвигом на 1
            i--;//уменьшаем счётчик так как при сдвиге мы получается "пропустили" одно число
        }
 
    //в конце выводим результат: число после удаления первой цифры и длину числа
    printf("After delete number = %s, number lenght = %i\n",buffer,strlen(buffer));
 
    getchar();
 
    return 0;
}
Но преподавателю это не понравилось, мол первое задание, а тут такие функции что ещё якобы не изучались. В общем бред как всегда, ненавижу задачи из ряда "решить задачу, но не использовать [первое, второе, ... десятое])."
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru