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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
#1

Массивы и строки - C++

05.02.2010, 15:43. Просмотров 850. Ответов 13
Метки нет (Все метки)

Здравствуйте, у меня есть просьба ко всем программистам владеющим С++. У меня сейчас такое положение, что если завтра (6.02.10) я не сдам работы меня отчислят из моего учебного заведения (СПК). Сам я в С++ полный ноль, абсолютно ничего не знаю, так получилось, что на парах не понял ничего, учебники не очень понятны, самому трудно начинать с нуля... Так что помогите кто может с решением следующих, как мне кажется для Вас элементарных, заданий:

1) Дан целочисленный массив с количеством элементов n. Напечатать те его элементы, индексы которых являются степенями двойки (1, 2, 4, 8, 16, ...).

2) Дана последовательность целых чисел а1, а2, …, аn. Указать пары чисел ai, aj, таких, что аi + Eaj = m.

3) Для целочисленной квадратной матрицы найти число элементов, кратных k, и наибольший из них.

4) В строке удалить символ «двоеточие» ( : ) и подсчитать количество удаленных символов.

Буду признателен за помощь. Только еще одна просьба, можно с пояснениями. Нашему преподу мало просто сдать, надо еще и объяснить, что откуда берется и для чего.

Добавлено через 2 часа 29 минут
Помогите хотя бы пару заданий =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2010, 15:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы и строки (C++):

Массивы. Строки. - C++
1)Дан массив размера а(четное число). Поменять местами 1 и 2 половины массива. 2) Дана матрица MxN. Найти кол-во её строк, элементы...

массивы, строки с++ - C++
помогите пожалуйста! 1. (одномерные массивы) Найти сумму элементов массива, расположенных после минимального элемента. Ввод исходных...

Массивы и строки - C++
Люди помогите решить плиз:wall: Массивы: 1) Написать программу, которая вводит с клавиатуры двумерный массив и вычисляет сумму...

массивы и строки - C++
Ввести строку. Выяснить сколько раз в строке встречается буква "а"?в каком по счёту слове.

Массивы, строки (на С++) - C++
1ое задание: Вычислить величину (x0y0 + x2y2 + … + x30y30)/( x1y1+ x3y3 + … + x29y29) 2ое задание: Даны 6-элементные...

Массивы и строки ... - C++
Помогите пожалуйста решить задачу ... 1) В поезде 18 вагонов, в каждом из которых 36 мест. Информация о проданных на поезд билетах...

13
Vertus
14 / 44 / 1
Регистрация: 26.10.2009
Сообщений: 298
05.02.2010, 16:28 #2
Первая:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>//подключаем модуль для ввода вывода printf,scanf
int main()
{
    const int col=20;//задаём количество элементов
    int ar[col]={2,5,1,9,-8,-25,4,9,0,7,11,3,-3,13,14,2,1,-8,-6,10};//выделям память под массив и заполняем его значениями
    printf("%d ",ar[0]);//вывод первого элемента, нулевая степень двойки
    for (int i=2;i<=col;i=i*2) printf("%d ",ar[i-1]);// вывод элементов с индексами степени двойки
    printf("\n");
    return 0;
}
1
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 16:31 #3
Вообще не вопрос. Только кое-что разъясни:
1) за системным временем не гонишься? Если гонишься, то какой тайм лимит(секунда, две, и сколько вообще элементов в массиве и пр.?
2) вывод с экрана или с файла?
3) че это за е в0 2 задаче?
0
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 16:38  [ТС] #4
1) Тайм лимита как я понял нет, мне дали перечень заданий, я скопировал из него.
2) С экрана
3) Не понял твой вопрос, ты про подстрочные символы ?
0
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 16:40 #5
Нет, аi + Eaj = m. Че за Е? Константа Эйлера что ли?
0
Vertus
14 / 44 / 1
Регистрация: 26.10.2009
Сообщений: 298
05.02.2010, 16:44 #6
Вторая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>//подключаем модуль для ввода вывода printf,scanf
int main()
{
    const int col=20;//задаём количество элементов
    int ar[col]={2,5,1,9,-8,-25,4,9,0,7,11,3,-3,13,14,2,1,-8,-6,10};//выделям память под массив и заполняем его значениями
    for (int i=0;i<col;i++) printf("%d ",ar[i]);//выводим на экран массив
    printf("\n");
    printf("Input m\n");
    int m=0;
    scanf("%d",&m);
    //далее проверяем все возможные суммы
    for (int i=0;i<col;i++)
    {
        for (int j=i+1;j<col;j++)
        {
            if ((ar[i]+ar[j])==m) printf("%d %d with index %d %d\n",ar[i],ar[j],i,j);
        }
    }
    printf("\n");
    return 0;
}
0
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 16:47  [ТС] #7
Нет, Эйлера точно нам не давали.
0
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 17:04 #8
3-я
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
#include <vcl.h>
#pragma hdrstop  // ïåðâûå äâå ñòðîêè-äëÿ áèëäåðГ*. Åñëè Гі ГІГҐГЎГї visual studio-ГіГ¤Г*ëÿé ГЁГµ
#include <fstream> // Г§Г*ìåГ*ГЁ fstream Г*Г* iostream. Âñå in ГЁ out Г§Г*ìåГ*ГЁ Г*Г* cin, cout
#include <cmath> // ïðèâûêГ*Г© ïîäêëþ÷Г*ГІГј ìîäóëåé ГЇГ® Г¬Г*êñèìóìó. Cmath-Г¬Г*ГІГҐГ¬Г*ГІГЁГ·ГҐГ±ГЄГЁГҐ Г*ëãîðèòìû
 
int n,k,maks,i,j;// ГЇГ® îïûòó ëó÷øå ïåðåìåГ*Г*ûå Г§Г*Г¤Г*ГўГ*ГІГј ãëîáГ*ëüГ*Г®
int a[1000][1000];
 
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt"); //ïîäêëþ÷Г*ГҐГ¬ ГґГ*éëû input.txt ГЁ output.txt. ГђГ*Г§ Г± ГЅГЄГ°Г*Г*Г*-ГіГ¤Г*ëè.
 
int main()
{
    in >>k;// Г±Г*Г*Г·Г*Г«Г* ââîäèì Г*Г*ГёГҐ K
    in >>n;// n-êîëè÷åñòâî ñòðîê-ñòîëáöîâ
    maks=k;// ïîñêîëüêó Гі Г*Г*Г± ГЇГ® óñëîâèþ ГўГ±ГҐ Г·ГЁГ±Г«Г* ГЄГ°Г*ГІГ*Г» ГЄ, ГІГ® Г*Г*èìåГ*ГјГёГЁГ¬ ñðåäè Г*ГЁГµ ìîæåò áûòü òîëüêî Г±Г*ìî ГЄ. ÈìåГ*Г*Г® ïîýòîìó max=k;
    for (i=0; i<n; i++)
    {
        for(j=0; j<n;j++)
        {
            in >>a[i][j];//ñ÷èòûâГ*ГҐГ¬ ýëåìåГ*ГІ
            if ((a[i][j]>maks)&&(a[i][j]%k==0))//åñëè ýëåìåГ*ГІ áîëüøå Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îãî ГЁ äåëèòñÿ ГЎГҐГ§ îñòГ*ГІГЄГ* Г*Г* K
            {
                maks=a[i][j];// Г§Г*ìåГ*ГїГҐГ¬ ГҐГЈГ® Г*Г* Г¬Г*Гµ
            }
        }
    }
    out <<maks;//öèêëû Г§Г*ГЄГ®Г*÷èëèñü, ìû Г±Г·ГЁГІГ*ëè Г¬Г*òðèöó ïîëГ*îñòüþ ГЁ Г*Г*øëè Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ-Г*Г*ГЇГҐГ·Г*ГІГ*ГҐГ¬ ГҐГЈГ®
    return 0;
}
Добавлено через 5 минут
[CPP]#include <iostream>//подключаем модуль для ввода вывода printf,scanf

Чувак, разве в iostream прописаны printf, scanf? я считал, что в conio.h и в iostream прописаны cin,cout...
1
Vertus
14 / 44 / 1
Регистрация: 26.10.2009
Сообщений: 298
05.02.2010, 17:06 #9
А как бы у меня тогда работали printf и scanf?
1
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 17:20 #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
27
28
29
30
31
32
33
#include <vcl.h>
#pragma hdrstop
#include <fstream>
#include <cmath>
 
int i,b;
char a[1000];//ñòðîêó ìû îáúÿâèì Г¬Г*òðèöîé ñèìâîëîâ
 
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt"); //ïîäêëþ÷Г*ГҐГ¬ ГґГ*éëû input.txt ГЁ output.txt. ГђГ*Г§ Г± ГЅГЄГ°Г*Г*Г*-ГіГ¤Г*ëè.
 
int main()
{
    i=0;
    b=0;
    while (a[i]!=' ')//ïîïðîñè ïðîáåë ïîñëåäГ*ГЁГ¬ ñèìâîëîì
    {
        in >>a[i];
        if (a[i]==':')
        {
            b++;// Г±Г·ГЁГІГ*ГҐГ¬ êîëè÷åñòâî äâîåòî÷èé. Г€, åñëè ìû Г*Г*øëè äâîåòî÷èå Г*ГҐ óâåëè÷èâГ*ГҐГ¬ ГЁГ*äåêñ-ñëåäóþùèé ñèìâîë Г§Г*ГЇГЁГёГЁГІГ±Гї Г*Г* ГҐГЈГ® ìåñòî
        }
        else i++;
    }
    out <<b <<"\n";//âûïèñГ*ëè êîëè÷åñòâî äâîåòî÷èé  ГЁ ïåðåâåëè Г*Г* Г*îâóþ ñòðî÷êó
    b=i;//Г°Г*Г§ b ГІГҐГЎГҐ Г*ГҐ Г*ГіГ¦Г*Г® òåïåðü-Г§Г*ГЇГЁГёГЁ ñêîëüêî ñèìâîëîâ Гў Г*îâîé ñòðîêå
    for (i=0; i<b;i++)
    {
        out <<a[i];
    }
    return 0;
}
Добавлено через 31 секунду
это 4-я

Добавлено через 1 минуту
Цитата Сообщение от Vertus Посмотреть сообщение
А как бы у меня тогда работали printf и scanf?
Ну круто. Я не знал, спасибо. Правда я ими редко пользуюсь но буду знать

Добавлено через 1 минуту
Давай, удачи завтра!
ЗЫ: ты на всякий случай проверь на своем сишнике, а то мало ли... Всякое бывает
1
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 17:23  [ТС] #11
Огромное спасибо! Если эта блондинка молодая (мой препод) опять будет возмущаться проще будет самому документы забрать =)
0
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 17:31 #12
Цитата Сообщение от Baahl Посмотреть сообщение
Огромное спасибо! Если эта блондинка молодая (мой препод) опять будет возмущаться проще будет самому документы забрать =)
Так у тебя еще и блондинка ведет? Не завидую тебе брат... Но у нас написано все-не подкопаешься)))
Зы: чем больше ее ты будешь сам грузить, если она поймет что она-нуб, она тебе сразу 5 поставит. Я сломал руку на зачет(ну бывает так), а у нас препод по инфе-ну сволочь просто. Так я его загрузил так, что он ниче сказать не смог и в конечном итоге поставил мне зачет задним числом, что сохранило мне стипендию)))
0
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
05.02.2010, 21:48 #13
Правильное решение первых двух с правильными комментариями
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
#include <iostream>//подключение библиотеки ввода/вывода
//printf и scanf к ней не имеют никакого отношения
 
int main()
{
    int n, i, j, m;//объявляем переменные, старайтесь избегать(!) глобальных переменных
    int *mas;//объявляем указатель на наш массив
    std::cout<<"Input length:\n> ", 
        std::cin>>n;//вводим количество элементов в массиве
    mas = new int[n];//выделяем под него память. выделение происходит только при new
    //в предыдущем варианте как вам писали, это было не выделение, а инициализация
    //при объявлении
    
    std::cout<<"Set:\n";
    for(i = 0; i < n; ++i)
        mas[i] = rand()%10,//заполняем массив случайными числами [0, 10]
            std::cout<<mas[i]<<' ';//выводим их 
    
    for(i = 1; i < n; i <<= 1)//первое задание
        std::cout<<mas[i]<<' ';
    
    std::cout<<std::endl;
    std::cout<<"Input m:\n> ", 
        std::cin>>m;
 
    for(i = 0; i < n; ++i)//второе задание
        for(j = i + 1; j < n; ++j)
            if(mas[i] + mas[j] == m)
                std::cout<<"\nmas["<<i<<"] = "<<mas[i]<<
                    "\nmas["<<j<<"] = "<<mas[j]<<std::endl;
    system("pause");//задержка экрана
    return EXIT_SUCCESS;
}
Добавлено через 6 минут
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
#include <iostream>
 
int main()
{
    int n, i, j, k, count(0), max(-1);
    int **mas;
    std::cout<<"Input length:\n> ", 
        std::cin>>n;
    mas = new int*[n];
    for(i = 0; i < n; ++i)
    {
        mas[i] = new int[n];
        for(j = 0; j < n; ++j)
        mas[i][j] = rand()%100;
    }
    
    std::cout<<"Set:\n";
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < n; ++j)
            std::cout<<mas[i][j]<<'\t';
            
    std::cout<<"Input m:\n> ", 
        std::cin>>k;
        
    for(i = 0; i < n; ++i)
        for(j = 0; j < n; ++j)
            if(!(mas[i][j] % k))//проверка на кратность
            {
                ++count;
                if(mas[i][j] > max)//поиск максимума
                max = mas[i][j];
            }
    std::cout<<"Count:\n< "<<count<<"\nMax:\n< "<<max<<std::endl;
    system("pause");
    return EXIT_SUCCESS; 
}
Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    char str[1024];
    std::cout<<"Input string:\n> ", 
        std::cin.getline(str, 1024);//ввод строки
    int i, j, count(0), len(strlen(str));//нахождение длины введенной строки
    for(i = 0; i < len; ++i)
        if(str[i] == ':')//поиск двоеточия
        {
            ++count;//увеличиваем счетчик
            for(j = i; j < len - 1; ++j)//удаляем его
                str[j] = str[j + 1];
            str[len - 1] = '\0';//перемещаем конец строки
        }
    std::cout<<"Result:\n< "<<str<<"\nCount:\n< "<<count<<std::endl;//выводим результат
    system("pause");
    return EXIT_SUCCESS; 
}
0
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
06.02.2010, 09:39 #14
Ой да чувак я не посмотрел нужно было проконтролить
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2010, 09:39
Привет! Вот еще темы с ответами:

Массивы и строки - C++
Помогите пожалуйста написать программу в visual studio 2005.Само задание:Написать программу коротая вводит с клавиатуры массив из 10 целых...

Строки и массивы - C++
Дана строка с текстом и пустой массив.(Например в строке такой текст: programmer programmer,programmer;programmer ). Необходимо...

Массивы и строки - C++
Помоги пожалуйста написать программу.ТЗ:Написать программу,коротая выводит с клавиатуры массив из 10 целых чисел,считает среднее...

строки и массивы - C++
задание - написать программу, которая удаляет все цифры из строки #include &lt;iostream&gt; using namespace std; int main() { ...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
06.02.2010, 09:39
Ответ Создать тему
Опции темы

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