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

Удалить элементы с заданным значением, добавить перед каждым четным элементом 0 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести название соответствующего времени года http://www.cyberforum.ru/cpp-beginners/thread364273.html
Я только начал изучать его, ну то есть в универ поступил, а в обычной школе до этого с ним не сталкивался, и много еще не знаю. Помогите пожалуйста. Вот задача: Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т. д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).
C++ Угол Фи Всем доброго времени. Нужна помощь, есть код на паскале, причем рабочий, но как то же самое сделать на СИ не понимаю. Часовая стрелка образует угол "Фи" с лучом, проходящим через центр циферблата и через точку, соответствующую 12 часам, 0<Фи<=2Пи. Определить значение угла для минутной стрелки, а также количество часов и полных минут. uses crt; var fi,u:real; h,m:word; begin http://www.cyberforum.ru/cpp-beginners/thread364272.html
Реверс положытельной подстроки C++
Надо найти положытельную подстроку и записать ее реверс вот мой код но он почемуто не работает( // massd.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include<iostream> #include<conio.h> #include<cmath> using namespace std; const int N=10;
квадратичная выборка C++
Здравствуйте, подкиньте, пожалуйста, ручной просчет квадратичной выборки. У самого никак не получается правильно понять.
C++ Как упростить меню? http://www.cyberforum.ru/cpp-beginners/thread364254.html
#include <stdio.h> #include <conio.h> // для _getch() #include <windows.h> #include <iostream> using namespace std; . . .
C++ Вопросы по C++ Всем привет! У меня появилось несколько вопросов по C++, был бы рад, если бы Вы помогли бы мне хотя бы из одним из них. 1) Как узнать количество строк в файле; 2) Как узнать количество символов в файле; 3) Как узнать количество символов в отдельной строке файла; 4) Как считать каждую строку в отдельный массив символов (char); 5) Есть строка с N-ым количемством чисел, записаных через... подробнее

Показать сообщение отдельно
Ruslanishe
25 / 9 / 1
Регистрация: 17.10.2010
Сообщений: 203
10.10.2011, 23:27  [ТС]     Удалить элементы с заданным значением, добавить перед каждым четным элементом 0
вот моя версия))
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
int main()
{
    int x[100],j,i;
     double n,k,p,w,r;
    srand(time(0));
    cout << "Vvedite kol-vo elementov massiva:" << endl;
    cin >> n;
    cout << "Massiv:" << endl << "   " << endl;
    //1,2
    for( i = 0; i < n; i++)
    {
        x[i]=rand()%10+1;
        cout << x[i] << "  ";
        }  
    
    cout << endl;
    cout << "Vvedite chislo dlya udaleniya: ";    
    cin >> r;
    k = 0;
    cout << endl << "Posle udaleniya:" << endl;
 for ( i = 0 ; i < n ; i++ )
       {
    if ( x[i] == r )
     {
        for ( j = i ; j < n-1 ; j++ )
        x[j] = x[j+1];
        
        x[j] = -1;
        i--;
       k+=1;
         }
         }
    
     for ( i = 0 ; i < n-k ; i++ )    {
            
        cout << x[i] << "  ";
} 
cout << endl;
p = 0;
 
for( i = 0; i < n; i++ )
    {
        if( !(x[ i ] % 2) )
        
            
            for( j = n - 1; j > i; j-- )
                x[ j ] = x[ j - 1 ];
 
            x[ i ] = 0;
            i++;
             
          p+=1;  
        
    }  
    
    cout << endl;
for ( i = 0 ; i < n ; i++ )    
            
        cout << x[i] << "  ";
        
      
   getch();    
}
только в моём коде недостаток: при выводе уже четных элементов с ноликом впереди он может иногда недосчитаться нескольких значений! или наоборот их будет меньше чем n и он заменит остаток на -1!!!

в вашем коде: эта "болезнь" в обоих случаях и при удалении элемента, и при выводе чётного элемента с ноликом!!!

в моей интерпретации Вашего кода я смогу убрать это с помощью n-k
C++
1
2
3
for ( i = 0 ; i < n-k ; i++ )    {
            
        cout << x[i] << "  ";
а вот с чётными не получается!!! если поразмыслить то там должно быть написано n-k+p
C++
1
2
3
for ( i = 0 ; i < [B]n[/B] ; i++ )    
            
        cout << x[i] << "  ";
но это не работает она выводит другие числа.
Миниатюры
Удалить элементы с заданным значением, добавить перед каждым четным элементом 0  
 
Текущее время: 02:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru