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

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

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

Исправьте программу. Дана матрица 3×5. Найти сумму по столбцам матрицы. - C++

12.01.2011, 13:25. Просмотров 963. Ответов 8
Метки нет (Все метки)

1)Исправьте программу.Дана матрица 3×5. Найти сумму по столбцам матрицы.
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 "stdafx.h"
#include <conio.h>
#include <iostream>
#include <iomanip>
using namespace std;
#define ROW 3;
#define COL 5;
void _tmain()
{
    double a[ROW][COL],b[COL];
    int i,j;
    for (i=0;i<ROW;i++)
    {
        cout<<"введите строку матрицы"<<(i++)<<endl;
    }
        for (j=o;j<COL;j++)
        {
            cin>>a[i][j];
    }
    for (j=0;j<COL;j++)
    {
    
        b[j]=0;
    for (i=0;i<ROW;i++)
    {b[j]=a[i][j];}
}
    cout<<"\n сумма по столбцам матрицы\n"<<endl;
    for (i=0;i<COL;i++);
    cout<<"b[i]= "<<setw[8]<<b[i];
    cout<<"i= "<<setw[8]<<i;
    
    _getch();
}
2)Дан одномерный массив А, состоящий из N элементов. Исключить из мас-
сива первый, предшествующий максимуму, положительный элемент.Сделать максимально простенькую программу, как в первой задаче
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 13:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправьте программу. Дана матрица 3×5. Найти сумму по столбцам матрицы. (C++):

Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти сумму его элементов. Условный оператор не использовать. - C++
Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти сумму его элементов. Условный оператор не...

Дана действительная матрица размером n ×m. Найти сумму наибольших значений ее строк - C++
Дана действительная матрица размером n ×m. Найти сумму наибольших значений ее строк.

Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов. - C++
Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов. Добавлено через 3 часа 23 минуты Ответьте...

Дана матрица размера M × N. Продублировать столбец матрицы, содержащий ее минимальный элемент. - C++
Дана матрица размера M × N. Продублировать столбец матрицы, содержащий ее минимальный элемент. Помогите пожалуйста!!!

7. Дана матрица размера M × N (M — четное число). Поменять местами верхнюю и нижнюю половины матрицы. - C++
Дана матрица размера M × N (M — четное число). Поменять местами верхнюю и нижнюю половины матрицы.

Дана матрица размера M × N. Поменять местами строки, содержащие минимальный и максимальный элементы матрицы - C++
Я написал программу меняющую максимальный и минимальный элемент местами, но поменять строчки в которых они содержатся не получается ...

8
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.01.2011, 13:46 #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
#include <conio.h>
#include <iostream>
#include <locale.h>
 
using namespace std;
 
#define ROW 3
#define COL 5
 
void main()
{
    setlocale(LC_ALL, "Russian");
    double a[ROW][COL],b[COL];
    int i,j;
    for (i=0;i<ROW;i++)
    {
        cout<<"введите строку матрицы "<<(i + 1)<<endl;
        for (j=0;j<COL;j++)
            cin>>a[i][j];
    }
 
    for (j=0;j<COL;j++)
    {
        b[j]=0;
        for (i=0;i<ROW;i++)
            b[j]+=a[i][j];
    }
    cout<<"\n сумма по столбцам матрицы\n"<<endl;
    for (i=0;i<COL;i++)
        cout<<"b[" << i+ 1 <<"]= "<<b[i] << endl;
 
    _getch();
}
1
Fragrance
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 14
12.01.2011, 16:20  [ТС] #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
#define SIZE 10
using namespace std;
 
void _tmain()
{   setlocale( LC_ALL,"Russian" ); 
    int A[SIZE], n, i, Amax, Imax, Ip;
    ifstream f("\\file.txt");
    if (!f) cout << "Ошибка чтения файла!!!" << endl;
    cout << "Читаем массив:" << endl;
    n=SIZE;
    for(i=0; i<n; i++) {
        f >> A[i];
        cout << A[i] << " ";
    }
    cout << endl;
    Amax=A[0];
    Imax=0;
    for (i=1; i<n; i++) {
        if (A[i] > Amax) {
            Amax=A[i];
            Imax=i;
        }
    }
    cout << "Amax (макс. элемент)=" << Amax << endl; 
    cout << "Imax (индекс макс. элемента)=" << Imax << endl; 
    if (Imax == n-1) {
        cout << "Решения нет" << endl;
        goto M1;} //переход
 
    for (i=Imax+1; i<n; i++) {
        if (A[i] > 0) {
            Ip=i;
            cout << "Ip (индекс первого полож. элемента, след. за макс.)=" << Ip << endl;
            cout << "Новый массив:" << endl;
            for (i=0; i<n; i++) {
                if (i != Ip) {
                   cout << "A[i]=" << A[i] << endl;
                    }
            }
            break;
        }
    }
        
M1:
    _getch();
}
Это программа вывода нового массива без первого положительного элемента, следующего за максимальным по значению элементом.Мне нужна программа, которая исключает из массива первый, предшествующий максимуму, положительный элемент.
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.01.2011, 16:24 #4
Цитата Сообщение от Fragrance Посмотреть сообщение
2)Дан одномерный массив А, состоящий из N элементов. Исключить из мас-
сива первый, предшествующий максимуму, положительный элемент.Сделать максимально простенькую программу, как в первой задаче
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
#include <conio.h>
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    size_t n, i_max = 0; 
    int i_ = -1;
    setlocale(LC_ALL, "Russian");
    cout << "Введите число элементов массива\n";
    cin >> n;
    int *massiv = new int[n];
    cout << "Введите массив элементов\n";
    for (size_t i = 0; i < n; ++i)
    {
        cin >> massiv[i];
        if (massiv[i] > massiv[i_max])
            i_max = i;
    }
    for (int i = i_max - 1; i >= 0; --i)
        if (massiv[i] > 0)
        {
            i_ = static_cast<int>(i);
            break;
        }
    if (i_ == -1)
        cout << "В массиве нет положительных элементов, предшествующих максимальному\n";
    else
    {
        cout << "Массив без положительного элемента, предшествующего максимальному\n";
        for (size_t i = 0; i < n; ++i)
            if (i != i_)
                cout << massiv[i] << " ";
    }
    _getch();
    delete[] massiv;
    return EXIT_SUCCESS;
}
1
Fragrance
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 14
12.01.2011, 16:45  [ТС] #5
Код должен быть похож на программу в сообщении №3.

Добавлено через 8 минут
Ёще нужна первая программа с внешним файлом, как в сообщении №3.
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.01.2011, 16:48 #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
37
38
39
40
41
42
43
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
 
#define n 5
 
using namespace std;
 
void main()
{  
    setlocale( LC_ALL,"Russian" ); 
    int A[n], i, Imax = 0, Ip;
    ifstream f("file.txt");
    if (!f) 
    {
        cout << "Ошибка чтения файла!!!/n";
        goto M1;
    }
    cout << "Читаем массив:" << endl;
    for(i=0; i<n; i++)
    {
        f >> A[i];
        cout << A[i] << " ";
        if (A[i] > A[Imax])
            Imax=i;
    }
    cout << "\nAmax (макс. элемент)=" << A[Imax] << endl; 
    cout << "Imax (индекс макс. элемента)=" << Imax << endl; 
    for (i=Imax - 1 ; i>=0; i--) 
        if (A[i] > 0)
        {
            Ip=i;
            cout << "Ip (индекс первого полож. элемента, пред. макс.)=" << Ip << endl;
            cout << "Новый массив:" << endl;
            for (i=0; i<n; i++)
                if (i != Ip)
                    cout << "A[i]=" << A[i] << endl;
            break;
        }
    M1:
    _getch();
}
похож?
1
Fragrance
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 14
12.01.2011, 17:02  [ТС] #7
Похож. Только когда я создаю файл file.txt и пишу в нем массив, программа всегда выдает "Ошибка чтения файла".
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.01.2011, 17:09 #8
Fragrance, файл надо создавать в папке в программой
1
Fragrance
0 / 0 / 0
Регистрация: 12.01.2011
Сообщений: 14
12.01.2011, 18:30  [ТС] #9
Спасибо, все работает.

Добавлено через 53 минуты
3)Дано L1 - L8, M1 - M5.Найти:Z
Z=(Сумма от i1 до i8*l^2[i])/(l1*Сумма от j1 до j5*(m[j]+m[j]))
Исправить программу и нарисовать блок-схему:
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
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
#define SIZE 8
#define size 5
 
void _tmain()
{
    setlocale(LC_CTYPE,"Russian");
int l[SIZE], m[size], i, j, Z;
int sum;
sum=0;
for(i=0; i<SIZE; i++)
{
    cout << "Введите массив L=" << endl;
    cin>>l[i];
}
    for(j=0; j<size; j++)
    {
    cout << "Введите массив M=" << endl;
    cin>>m[j];
    Z=(sum+((l[i]*l[i]))/((l[i]-8)*(sum+(m[i]+m[j]))));
}
        cout<<"Z="<<Z<<endl;
_getch();
}
4)Задача с реккурентными соотношениями:
Z=1/y+1/3*(1/y)^3+1/5*(1/y)^5+1/7*(1/y)^7+...+1/21*(1/y)^21.Найти:Z
Записать программу, используя цикл do-while.Нарисовать блок-схему.
5)Найти минимальный элемент в матрице и заменить все нулевые элементы, имеющиеся в матрице, на значение произведения элементов той строки, где находится минимум.Нарисовать блок-схему.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2011, 18:30
Привет! Вот еще темы с ответами:

Дана действительная матрица порядка n. Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке. - C++
Дана действительная матрица порядка n. Найти сумму элементов, расположенных в закрашенной части матрицы на рисунке.

Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию. - C++
Matrix42. Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию. Кто знает помогите!

Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Удалить столбец матрицы с номером K. - C++
Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Удалить столбец матрицы с номером K.

Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих только четные числа - C++
Matrix34. Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих только четные числа. Если таких строк...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
12.01.2011, 18:30
Ответ Создать тему
Опции темы

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