Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Есть 2 программы на С++ Помогите их обеденить в одну

poberaha maklaj Ученик (61), закрыт 12 лет назад
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных главной диагонали матрицы.
ПЕРВАЯ ПРОГРАММА:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define N_MIN -3
#define N_MAX 5
int main(int argc, char *argv[]){
int s,i,j,k,l,s1,t2,t1;
int a[5][5];
srand(time(NULL));
for(i=0;i<5;i++){
for(j=0;j<5;j++){
a[j]=rand()%(N_MAX-N_MIN+1)+N_MIN;
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("= ",a[j]);
}
printf("\n");
}
k=0;
s=0;
l=0;
for (i=0; i<5; i++){
for (j=0; j<5; j++){
if (a[j]>=0){
if(a[j]%2==0)
l+=a[j];
k++;
}
}
if (k==5){
l=l;
}
else {
l=0;
}
s=s+l;
k=0;
}
s1=a[0][5-1];
for(i=1; i<5; i++){
t1=t2=0;
for(j=0; j<5-i; j++){
t1+=a[i+j][j];
t2+=a[j][i+j];
}
if(t1<s1)>
#include <iomanip>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
const size_t rows = 5, cols = 5;
int ** matrix = new int * [rows];

for (rsize_t row = 0; row < rows; row++, cout << endl)
{
matrix[row] = new int [cols];
for (rsize_t col = 0; col < cols; col++)
{
matrix[row][col] = rand() % 5;
cout << setw(4) << matrix[row][col];
}
}
cout << endl;
double sum;
for (rsize_t col = 0; col < cols; col++)
{
sum = 0;
for (rsize_t row = 0; row < rows; row++) sum += matrix[row][col];
cout << setw(4) << sum;
}
for (rsize_t row = 0; row < rows; row++) delete[] matrix[row];
delete[] matrix;
cin.get();
return 0;
}
Дополнен 12 лет назад
ВТОРАЯ

#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
const size_t rows = 5, cols = 5;
int ** matrix = new int * [rows];

for (rsize_t row = 0; row < rows; row++, cout << endl)
{
matrix[row] = new int [cols];
for (rsize_t col = 0; col < cols; col++)
{
matrix[row][col] = rand() % 5;
cout << setw(4) << matrix[row][col];
}
}
cout << endl;
double sum;
for (rsize_t col = 0; col < cols; col++)
{
sum = 0;
for (rsize_t row = 0; row < rows; row++) sum += matrix[row][col];
cout << setw(4) << sum;
}
for (rsize_t row = 0; row < rows; row++) delete[] matrix[row];
delete[] matrix;
cin.get();
return 0;
}
Дополнен 12 лет назад
там я нечаино в месте с первои прогпаммои скопировал вторую)
Лучший ответ
Николай Веселуха Высший разум (383235) 12 лет назад
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cfloat>

using namespace std;

int main() {
    srand((unsigned)time(NULL));
    const size_t size = 5, w = 6;

    int ** matrix = new int * [size];
    for (rsize_t row = 0; row < size; row++, cout << endl << endl) {
        matrix[row] = new int [size];
        for (rsize_t col = 0; col < size; col++) {
            matrix[row][col] = 9 - rand() % 19;
            cout << setw(w) << matrix[row][col];
        }
    }
    cout << endl;

    double sum;
    bool flag;

    for (rsize_t col = 0; col < size; col++) {
        sum = 0;
        flag = true;
        for (rsize_t row = 0; row < size; row++) {
            sum += matrix[row][col];
            if (matrix[row][col] < 0) {
                flag = false;
                cout << setw(w) << '-';
                break;
            }
        }
        if (flag) cout << setw(w) << sum;
    }

    double min = DBL_MAX;
    rsize_t n, m, k = 0;

    while (++k < 2 * size) {
        if (k != size) sum = 0;
        if (k < size) {
            m = size - k;
            n = 0;
            do sum += abs(matrix[n++][m]); while(++m != size);            
        } else if (k > size) {
            n = k - size;
            m = 0;
            do sum += abs(matrix[n][m++]); while(++n != size);
        }
        if (min > sum) min = sum;    
    }
    cout << endl << "\n\tMin = " << min << endl;

    for (rsize_t row = 0; row < size; row++) delete[] matrix[row];
    delete[] matrix;

    cin.get();
    return 0;
}
Остальные ответы
Анастасия Коновалова Гуру (4099) 12 лет назад

ВТОРАЯ

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#define N_MIN -3
#define N_MAX 5
#include <iostream>
#include <iomanip>
#include <ctime>

int first(int argc, char *argv[]){
int s,i,j,k,l,s1,t2,t1;
int a[5][5];
srand(time(NULL));
for(i=0;i<5;i++){
for(j=0;j<5;j++){
a[j]=rand()%(N_MAX-N_MIN+1)+N_MIN;
}
}
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("= ",a[j]);
}
printf("\n");
}
k=0;
s=0;
l=0;
for (i=0; i<5; i++){
for (j=0; j<5; j++){
if (a[j]>=0){
if(a[j]%2==0)
l+=a[j];
k++;
}
}
if (k==5){
l=l;
}
else {
l=0;
}
s=s+l;
k=0;
}
s1=a[0][5-1];
for(i=1; i<5; i++){
t1=t2=0;
for(j=0; j<5-i; j++){
t1+=a[i+j][j];
t2+=a[j][i+j];
}
if(t1<s1)>

(кажется чего-то не хватает - тупо копируем текст первой программы)

return 0;
}
int second{
srand((unsigned)time(NULL));
const size_t rows = 5, cols = 5;
int ** matrix = new int * [rows];

for (rsize_t row = 0; row < rows; row++, cout << endl)
{
matrix[row] = new int [cols];
for (rsize_t col = 0; col < cols; col++)
{
matrix[row][col] = rand() % 5;
cout << setw(4) << matrix[row][col];
}
}
cout << endl;
double sum;
for (rsize_t col = 0; col < cols; col++)
{
sum = 0;
for (rsize_t row = 0; row < rows; row++) sum += matrix[row][col];
cout << setw(4) << sum;
}
for (rsize_t row = 0; row < rows; row++) delete[] matrix[row];
delete[] matrix;
cin.get();
return 0;
}

int main(int argc, char *argv[]){ //тут вызов двух функций, которые раньше были отдельными прогами
first(int argc, char *argv[]);
second();

}
Гувернантка Бэтти Мастер (1151) 12 лет назад
ой, а хедеров то сколько наинклюдили вам)))
Похожие вопросы