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

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

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

Многомерные массивы и строки. - C++

05.01.2011, 11:04. Просмотров 661. Ответов 4
Метки нет (Все метки)

Извиняюсь, что просто с нуля, но очень надо. Будьте добры)
Программирование на языках С
1)Дана целочисленная квадратная матрица. Определить:
а)сумму элементов в тех столбцах, которые не содержат отрицательных эле¬ментов;
б)упорядочить строки по убыванию произведений их элементов.
2)Дано предложение. Вывести его на экран, заменив каждую первую букву слов, начинающихся с гласной на прописную.
Желательно как нибудь попроще
Заранее огромное спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2011, 11:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Многомерные массивы и строки. (C++):

Многомерные массивы . Дана вещественная матрица размером 10х10. Упорядочить её строки по не убыванию суммы их элементов. - C++
Многомерные массивы Дана вещественная матрица размером 10х10. Упорядочить её строки по не убыванию суммы их элементов.

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...

Многомерные массивы - C++
Здравствуйте, уважаемые форумчане! Давненько я не задавал здесь своих глупых вопросов по плюсам. Надо бы исправить ситуацию: В общем, я...

Многомерные массивы. Матрица. - C++
Всем привет. Прошу помочь с заданием по программированию, не до конца понимаю кое-что… Задание: Дана матрица целых чисел N x M....

Многомерные массивы и STL - C++
Господа, не подскажете, как создавать многомерные массивы, например с помощью <vector> ? И, соответственно, как к ним обращаться? ...

Многомерные массивы (матрицы) - C++
Не могу понять как написать код. Если не сложно напишите подробнее цикл. Вот начало. srand(time(NULL)); const int SIZE =...

4
x1Mike7x
217 / 130 / 6
Регистрация: 06.11.2010
Сообщений: 234
05.01.2011, 11:56 #2
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
24
25
26
27
28
29
30
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
// Задаем количество элементов в строке
#define N 100
 
void capitalize(char *s); //Объявляем прототип функции, которая сделает прописными первые буквы в каждом слове
 
int main ()
{
    char str[N];  //Объявляем строку на N элементов
    printf("Input string: "); //Запрос на ввод строки
    gets(str); // Считываем строку
    capitalize(str); //Вызываем нашу мегафункцию
    printf("Output string: "); //Подготавливаем пользователя к тому,что сейчас мы выведем обработанную строку, вывев определённое сообщение
    puts(str); //Выводим обработанную строку
    system ("pause"); //Пауза - ждем нажатия на любую клавишу (кроме шивта, ктрл и альта)
    return 0;
}
 
void capitalize(char *s) //Наша функция
{
    int i; //Объявляем счётчик для цикла
    if (isalpha(s[0])) //Если первый символ является буквой...
        s[0]=toupper(s[0]); //... то делаем его прописным
    for (i=1; s[i]; i++) //Дальше пускаем цикл со второго символа (і=1), в котором будем перебирать каждый символ строки
        if ( (isalpha(s[i])) && !(isalpha(s[i-1])) ) //Проверяем или является нынешний символ буквой (isalpha(s[i])), а предыдущей - не буквой !(isalpha(s[i-1]))
            s[i]=toupper(s[i]); //Если условие исполняется, то делаем букву прописной
};
2
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.01.2011, 12:32 #3
Цитата Сообщение от matveyandreich Посмотреть сообщение
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
24
25
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
 
int main()
{
    std::string str;
    std::cout << "\n\nString -> ";
    getline(std::cin, str);
 
    const std::string glas("EYUIOA");
    std::istringstream ist(str);
 
    std::cout << "\n\nResult string -> ";
    while(ist >> str)
    {
        if(glas.find(str[0]) != std::string::npos)
            str[0] = tolower(str[0]);
 
        std::cout << str << ' ';
    }
 
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
05.01.2011, 14:22 #4
ыы.. да. я люблю сложности.

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
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <sstream>
#include <iterator>
 
int main()
{
    typedef std::string T_str;
    typedef std::vector<std::string> T_vec_str;
 
    T_str str;
    std::cout<<"Enter string\n";
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::string tmp;
    T_vec_str vec;
    while(ist >> tmp)
        vec.push_back(tmp);
    const std::string vowels="AEYUOI";
    int i=0;
    std::transform(vec.begin(), vec.end(), vec.begin(), [vowels](std::string tmp) -> std::string
    {
        if(vowels.find(*tmp.begin()) != std::string::npos)
            *tmp.begin()+=32;
        return tmp;
    });
    std::cout<<"Transformed string\n";
    std::copy(vec.begin(), vec.end(), std::ostream_iterator<std::string>(std::cout, " "));
    return 0;
}
0
x1Mike7x
217 / 130 / 6
Регистрация: 06.11.2010
Сообщений: 234
05.01.2011, 21:33 #5
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
 
// Задаем количество элементов в строке
#define N 100
 
void capitalize(char *s); //Объявляем прототип функции, которая сделает прописными первые буквы в каждом слове
bool isvowel(char ch); //Объявляем прототип функции, которая определяет, является ли символ гласной буквой
 
int main ()
{
    char str[N];  //Объявляем строку на N элементов
    printf("Input string: "); //Запрос на ввод строки
    gets(str); // Считываем строку
    capitalize(str); //Вызываем нашу мегафункцию
    printf("Output string: "); //Подготавливаем пользователя к тому,что сейчас мы выведем обработанную строку, вывев определённое сообщение
    puts(str); //Выводим обработанную строку
    system ("pause"); //Пауза - ждем нажатия на любую клавишу (кроме шивта, ктрл и альта)
    return 0;
}
 
bool isvowel(char ch) //Проверка символа на гласность
{
    char t[]="AaEeUuIiOoYy"; // массив гласных букв
    int i; // счётчик
    for (i=0; t[i]; i++) //сравниваем в цикле...
        if (ch==t[i]) //является ли наш символ одним из элементов массива гласных
            return true; //если да, то возвращаем труЪ
    return false; //если ж не нашли - возвращаем неОК
};
 
void capitalize(char *s) //Наша функция
{
    int i; //Объявляем счётчик для цикла
    if (isalpha(s[0])) //Если первое число является буквой...
        s[0]=toupper(s[0]); //... то делаем его прописным
    for (i=1; s[i]; i++) //Дальше пускаем цикл со второго символа (і=1), в котором будем перебирать каждый символ строки
        if ( (isvowel(s[i])) && (isalpha(s[i])) && !(isalpha(s[i-1])) ) //Проверяем или является нынешний символ буквой (isalpha(s[i])), а предыдущей - не буквой !(isalpha(s[i-1])) и плюс проверка на гласность
            s[i]=toupper(s[i]); //Если условие исполняется, то делаем букву прописной
};
Добавлено через 1 час 22 минуты
На 1е такое накидал:
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
69
70
71
72
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <stdbool.h>
 
#define N 5
 
int main ()
{
    int arr[N][N], t[N];
    int i, j, S, k, x;
    bool OK;
    
    srand(time(NULL));
    for (i=0; i<N; i++)
        for (j=0; j<N; j++)
            arr[i][j]=rand()%115-15; //диапазон значений от -15 до 99
            
    for (i=0; i<N; printf("\n"), i++)
        for (j=0; j<N; j++)
            printf("%3.2i ", arr[i][j]);
    
//а)
    for (j=0; j<N; j++)
    {
        S=0;
        OK=true;
        for (i=0; i<N; i++)
            if (arr[i][j]>=0)
                S+=arr[i][j];
            else
            {
                OK=false;
                break;
            };
        if (OK)
            printf("S[x][%i] = %i\n", j, S);
    };
 
//б)    
    for (i=0; i<N; i++)
    {
        t[i]=1;
        for (j=0; j<N; j++)
            t[i]*=arr[i][j];
    };
    for (k=0; k<N; k++)  //Сортировка пузырьком
    {  
        for (i=N-1; i>k; i--) 
        {    
            if (t[i-1]<t[i]) 
            {
                x=t[i-1]; 
                t[i-1]=t[i]; 
                t[i]=x;
                for (j=0; j<N; j++)
                {
                    x=arr[i-1][j]; 
                    arr[i-1][j]=arr[i][j]; 
                    arr[i][j]=x;
                };
            };
        };
    };
    
    for (i=0; i<N; printf("\n"), i++)
        for (j=0; j<N; j++)
            printf("%3.2i ", arr[i][j]);
    
    system ("pause");
    return 0;
}
0
05.01.2011, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2011, 21:33
Привет! Вот еще темы с ответами:

Многомерные динамические массивы - C++
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем сортирует их по возрастанию длины фамилии.

Задача на Многомерные Массивы - C++
Фирма имеет 5 магазинов. Информация о доходе каждого магазина за каждый месяц хранится в двухмерном массиве (первого магазина – в первой...

Многомерные массивы. Тени - C++
В трехмерном массиве k(l, m, n), состоящем из нулей и единиц, хранится сеточное изображение некоторого трехмерного тела. Получить в...

многомерные массивы. квадратная матрица - C++
всем доброго времени суток. нужно заменить все элементы НАД главной диагональю максимальным элементом. код программы, где уже все...


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

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

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