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

Строки/Матрицы/Функции/Списки - C++

Восстановить пароль Регистрация
 
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
16.12.2011, 23:54     Строки/Матрицы/Функции/Списки #1
Доброго времени суток!
Очень нуждаюсь в помощи, срочно.
Нужно написать 4 проги, вроде лёгкие, но я сам не могу понять

1) Строки: Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Подсчитать кол - во букв "о" во всей строке.
2) Матрицы:Дана матрица. Найти для каждой строки матрицы сумму максимального и минимального элементов. Распечатать в виде столбца.
3) Функции: Написать программу, подсчитывающую число сочетаний без повторения из N элементов по K элементов: C(N,K) = N!/K! (N - K)! + 2 способа ввода чисел вручную и автоматически.
4) Списки: Найти кол - во чисел в списке, которые совпадают с числом, стоящим на заданном месте.

Ребят, вся надежда на вас! Плиз, помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 23:54     Строки/Матрицы/Функции/Списки
Посмотрите здесь:

C++ Поиск максимального элемента строки матрицы (функции)
умножить элемент каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы C++
C++ умножением элементов каждой строки первой матрицы на наибольший из элементов соответствующей строки второй матрицы
Динамический массив. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы C++
Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
17.12.2011, 00:29     Строки/Матрицы/Функции/Списки #2
1)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main()
{
    char str[50],c='o';
    int i,count=0;
    gets(str);
    for (i=0;i<strlen(str);i++)
        if (str[i]==c)
            count++;
    printf("%d",count);
    getch();
    return 0;
}
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 00:44  [ТС]     Строки/Матрицы/Функции/Списки #3
strlen и getch не может инициализировать, можно заменить??))

Добавлено через 10 минут
Не, не пашет(((
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
17.12.2011, 00:54     Строки/Матрицы/Функции/Списки #4
Попробуйте тогда так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
        char str[50],c='o';
        int i,count=0;
        gets(str);
        for (i=0;i<50;i++)
    {       if (str[i]=='\0')
            break;
                if (str[i]==c)
                        count++;
    }
        printf("%d",count);
        system("pause");
        return 0;
}
Только странно что у вас не работает, у меня все норм
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 01:05  [ТС]     Строки/Матрицы/Функции/Списки #5
Ввожу ФИО, enter... И прога молчит, что за дрянь то??(((

Добавлено через 46 секунд
Даже понять не могу в чём проблема((
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
17.12.2011, 01:06     Строки/Матрицы/Функции/Списки #6
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
#include <stdio.h>
#include <stdlib.h>
 
 
int main()
{
    int **arr,max,min,sum,n,m,i,j;
    printf("Vvedite koli4estvo strok\n");
    scanf("%d",&n);
    printf("Vvedite koli4estvo stolbcov\n");
    scanf("%d",&m);
    arr=(int**)calloc(n,sizeof(int*));
    for (i=0;i<n;i++)
        arr[i]=(int*)calloc(m,sizeof(int));
 
    for (i=0;i<n;i++)
        for (j=0;j<m;j++)
            scanf("%d",&arr[i][j]);
    for (i=0;i<n;i++)
    {
        max=arr[i][0]; min=arr[i][0];
        for (j=0;j<m;j++)
            if (max<arr[i][j])
                max=arr[i][j];
            else min=arr[i][j];
       sum=min+max;
       printf("%d\n",sum);
    }
    for (i=0;i<n;i++)
        free(arr[i]);
    free (arr);
    system("pause");
    return 0;
}
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 01:09  [ТС]     Строки/Матрицы/Функции/Списки #7
Кстати, у меня eclipse выдаёт ошибку типа: Description Resource Path Location Type
cannot open output file Прога.exe: Permission denied Прога C/C++ Problem

Как можно устранить??
(Всей группой боролись, но так и не выяснили))
Ropsat
 Аватар для Ropsat
28 / 28 / 1
Регистрация: 04.03.2011
Сообщений: 67
17.12.2011, 01:17     Строки/Матрицы/Функции/Списки #8
Я компилирую в Visual Stidio 2010. На счет Eclipse я не знаю
Вот скрин работы програмы:
Миниатюры
Строки/Матрицы/Функции/Списки   Строки/Матрицы/Функции/Списки  
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 12:09  [ТС]     Строки/Матрицы/Функции/Списки #9
Огромное спасибо))
Вот только проблема в том, что мне всё это в C++ нужно и в eclipse))

Добавлено через 10 часов 49 минут
Ilina Rimma Sergeyevna
„«п Їа®¤®«¦Ґ*Ёп **¦¬ЁвҐ «оЎго Є«*ўЁиг . . .

Первая прога выдаёт такой ответ, из за чего это может быть то??))
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 13:37     Строки/Матрицы/Функции/Списки #10
Так как это просто лабы, то сделать видимость C++ несложно) Например, так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main(int argc, char** argv) 
{
    std::string name;
    std::getline(std::cin,name,'\n');
 
    int k = 0;
    for(int i = 0;i<name.size();++i)
        if(name[i]=='o')++k;
    std::cout << k << std::endl;
    system("pause");
    return 0;
}
А уж с настройкой эклипса постарайтесь разобраться сами (у меня VS 2010). Это ведь среда разработки. А значит, какой-то особенный синтаксис не нужен.

Добавлено через 15 минут
По спискам.
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 <list>
 
#define LIST_SIZE 100 //кол-во элементов
#define LIST_PLACE 23 //номер места, на котором стоит заданное число
 
int main(int argc, char** argv) 
{
    std::list<int> spisok;
 
    for(int i = 0;i<LIST_SIZE;++i)
        spisok.push_back(rand()%10);
 
    auto it = spisok.begin();
    for(int i = 0;i < LIST_PLACE;++i)++it;
 
    int t = *it;//нужное число
    int count = -1;//счетчик кол-ва
    for(it = spisok.begin();it != spisok.end();++it)
        if(*it == t)++count;
 
    std::cout << count << std::endl;
    system("pause");
    return 0;
}
Если в списке нет элементов, совпадающих с заданным (ну кроме него самого, конечно), то прога выдаст 0.

Добавлено через 1 минуту
По поводу подсчета сочетаний - что конкретно от вас хотят? насколько большие числа будут и т.д.
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 14:38  [ТС]     Строки/Матрицы/Функции/Списки #11
По поводу подсчёта сочетаний: Нужно взять элементы с номера N по номер K и подсчитать сколько будет сочетаний с взятыми числами
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 15:05     Строки/Матрицы/Функции/Списки #12
Я имел ввиду скорее тему, по которой было выдано это задание. Это рекурсии или это в цикле считать надо. Надо ли это вначале упрощать, чтобы избежать очень больших чисел при расчете факториала, или вам заранее известно, что N и K - небольшие.
Anshmidt
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 15:09  [ТС]     Строки/Матрицы/Функции/Списки #13
Ах вот оно что))
N & K небольшие числа.
Это рекурсивная задача должна быть))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 15:19     Строки/Матрицы/Функции/Списки
Еще ссылки по теме:

C++ Представить определение функции, позволяющей переставить местами элементы указанной строки и побочной диагонали квадратной матрицы
Найти среднее арифметическое элементов каждой строки матрицы Q (lm) и отнять его от элементов этой строки. размер матрицы 7х7.заранее спасибо C++
Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы C++

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

Или воспользуйтесь поиском по форуму:
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 15:19     Строки/Матрицы/Функции/Списки #14
Если рекурсия и если действительно небольшие числа (при 21 будет уже переполнение 64-битного беззнакового числа), то как-то так будет выглядеть рекурсивная функция факториала
C++
1
2
3
4
5
unsigned long long factorial(unsigned long long a)
{
    if(a<=1)return 1;
    return a*factorial(a-1);
}
Ее нужно будет вызвать для N, для K и для (N-K). А потом нужное поделить.

Если значения будут больше, чем 21, то нужно будет перед умножениями вначале сокращать.
Yandex
Объявления
17.12.2011, 15:19     Строки/Матрицы/Функции/Списки
Ответ Создать тему
Опции темы

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