Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
1

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

16.12.2011, 23:54. Показов 985. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Очень нуждаюсь в помощи, срочно.
Нужно написать 4 проги, вроде лёгкие, но я сам не могу понять

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

Ребят, вся надежда на вас! Плиз, помогите!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2011, 23:54
Ответы с готовыми решениями:

В функции, для каждой строки матрицы M[n][k], максимальный элемент поменять местами с первым элементом строки
В функции, для каждой строки матрицы M, максимальный элемент поменять местами с первым элементом...

Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции)
Удалить из матрицы А (7х5) все строки, сумма элементов которых четна, а из матрицы В (6х8) –...

Поиск максимального элемента строки матрицы (функции)
Здравствуйте! Помогите пожалуйста с задачкой: сделать программу в функции которой будет...

Отсортировать по убыванию все строки матрицы при помощи функции
Отсортировать по убыванию все строки матрицы при помощи функции Помогите....не понимаю как.... ...

13
33 / 33 / 4
Регистрация: 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;
}
1
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 00:44  [ТС] 3
strlen и getch не может инициализировать, можно заменить??))

Добавлено через 10 минут
Не, не пашет(((
0
33 / 33 / 4
Регистрация: 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;
}
Только странно что у вас не работает, у меня все норм
1
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 01:05  [ТС] 5
Ввожу ФИО, enter... И прога молчит, что за дрянь то??(((

Добавлено через 46 секунд
Даже понять не могу в чём проблема((
0
33 / 33 / 4
Регистрация: 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;
}
1
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

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

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

Первая прога выдаёт такой ответ, из за чего это может быть то??))
0
576 / 559 / 47
Регистрация: 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 минуту
По поводу подсчета сочетаний - что конкретно от вас хотят? насколько большие числа будут и т.д.
1
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 14:38  [ТС] 11
По поводу подсчёта сочетаний: Нужно взять элементы с номера N по номер K и подсчитать сколько будет сочетаний с взятыми числами
0
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
17.12.2011, 15:05 12
Я имел ввиду скорее тему, по которой было выдано это задание. Это рекурсии или это в цикле считать надо. Надо ли это вначале упрощать, чтобы избежать очень больших чисел при расчете факториала, или вам заранее известно, что N и K - небольшие.
0
0 / 0 / 0
Регистрация: 16.12.2011
Сообщений: 14
17.12.2011, 15:09  [ТС] 13
Ах вот оно что))
N & K небольшие числа.
Это рекурсивная задача должна быть))
0
576 / 559 / 47
Регистрация: 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, то нужно будет перед умножениями вначале сокращать.
0
17.12.2011, 15:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2011, 15:19
Помогаю со студенческими работами здесь

Оформить сортировку элементов отдельной строки матрицы в виде функции
Помогите, срочно нужно сдать. Программу надо переделать. Нужно оформить как функцию сортировку...

Определить, что все элементы строки первой матрицы больше соответствующих элементов строки второй матрицы
Помогите,пожалуйста,с решением массивов в с++.надо в статическом и динамическом варианте. Даны...

умножить элемент каждой строки первой матрицы на наибольшее из значений элементов соответствующей строки второй матрицы
Даны две действительные квадратные матрици порядка n. Получить новую матрицу: умножением элементов...

С помощью функции вывести в порядке возрастания минимальных элементов строки прямоугольной матрицы
Хелп, плиз!) Нужна программа для языка c++. Программа должна с помощью функции вывести в порядке...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru