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

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

Восстановить пароль Регистрация
 
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 15:43     Массивы и строки #1
Здравствуйте, у меня есть просьба ко всем программистам владеющим С++. У меня сейчас такое положение, что если завтра (6.02.10) я не сдам работы меня отчислят из моего учебного заведения (СПК). Сам я в С++ полный ноль, абсолютно ничего не знаю, так получилось, что на парах не понял ничего, учебники не очень понятны, самому трудно начинать с нуля... Так что помогите кто может с решением следующих, как мне кажется для Вас элементарных, заданий:

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

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

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

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

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

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

Массивы и строки C++
C++ Массивы, строки (на С++)
C++ Массивы. Строки.
Строки и массивы C++
Массивы и строки ... C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 16:31     Массивы и строки #3
Вообще не вопрос. Только кое-что разъясни:
1) за системным временем не гонишься? Если гонишься, то какой тайм лимит(секунда, две, и сколько вообще элементов в массиве и пр.?
2) вывод с экрана или с файла?
3) че это за е в0 2 задаче?
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 16:38  [ТС]     Массивы и строки #4
1) Тайм лимита как я понял нет, мне дали перечень заданий, я скопировал из него.
2) С экрана
3) Не понял твой вопрос, ты про подстрочные символы ?
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 16:40     Массивы и строки #5
Нет, аi + Eaj = m. Че за Е? Константа Эйлера что ли?
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;
}
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 16:47  [ТС]     Массивы и строки #7
Нет, Эйлера точно нам не давали.
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...
Vertus
14 / 44 / 1
Регистрация: 26.10.2009
Сообщений: 298
05.02.2010, 17:06     Массивы и строки #9
А как бы у меня тогда работали printf и scanf?
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 минуту
Давай, удачи завтра!
ЗЫ: ты на всякий случай проверь на своем сишнике, а то мало ли... Всякое бывает
Baahl
0 / 0 / 0
Регистрация: 05.02.2010
Сообщений: 4
05.02.2010, 17:23  [ТС]     Массивы и строки #11
Огромное спасибо! Если эта блондинка молодая (мой препод) опять будет возмущаться проще будет самому документы забрать =)
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
05.02.2010, 17:31     Массивы и строки #12
Цитата Сообщение от Baahl Посмотреть сообщение
Огромное спасибо! Если эта блондинка молодая (мой препод) опять будет возмущаться проще будет самому документы забрать =)
Так у тебя еще и блондинка ведет? Не завидую тебе брат... Но у нас написано все-не подкопаешься)))
Зы: чем больше ее ты будешь сам грузить, если она поймет что она-нуб, она тебе сразу 5 поставит. Я сломал руку на зачет(ну бывает так), а у нас препод по инфе-ну сволочь просто. Так я его загрузил так, что он ниче сказать не смог и в конечном итоге поставил мне зачет задним числом, что сохранило мне стипендию)))
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
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; 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2010, 09:39     Массивы и строки
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
JKeeJ1e30
12 / 12 / 0
Регистрация: 04.02.2010
Сообщений: 45
06.02.2010, 09:39     Массивы и строки #14
Ой да чувак я не посмотрел нужно было проконтролить
Yandex
Объявления
06.02.2010, 09:39     Массивы и строки
Ответ Создать тему
Опции темы

Текущее время: 13:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru