Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
matveyandreich
0 / 0 / 0
Регистрация: 05.01.2011
Сообщений: 3
1

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

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

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

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

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

Многомерные массивы
Здравствуйте, уважаемые форумчане! Давненько я не задавал здесь своих глупых вопросов по плюсам....

Многомерные массивы. Матрица.
Всем привет. Прошу помочь с заданием по программированию, не до конца понимаю кое-что… Задание:...

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

4
x1Mike7x
220 / 133 / 19
Регистрация: 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
Эксперт С++
2863 / 1798 / 355
Регистрация: 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
В астрале
Эксперт С++
8004 / 4761 / 654
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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
220 / 133 / 19
Регистрация: 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

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

Многомерные массивы (матрицы)
Не могу понять как написать код. Если не сложно напишите подробнее цикл. Вот начало. ...

Многомерные и одномерные массивы
Добрый вечер, пожалуйста, помогите написать программы для следующих действий: для всех действий,...


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

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

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