Вот одна программа( будет работать при
замене N на M, т.е.
int Sum_Matrix(int N, int a[][M]);):
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<iostream>
#include<conio.h>
using namespace std;
const int N=7;
const int M=7;
int Sum_Matrix(int N, int a[][N]);
int main()
{ int a[N][N];
int i,j,sum;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=rand()%10;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
sum=Sum_Matrix(N,a);
cout<<sum<<endl;
getch();
return 0;
}
int Sum_Matrix(int N, int a[][N])
{ int i,j,s=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
s+=a[i][j];
return s;
} |
|
Что касается исп. ф-ии для одномерного массива:
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
| #include<iostream>
#include<conio.h>
using namespace std;
const int N=7;
int Sum(int N, int *a);
int main()
{ int a[N][N];
int i,j,sum;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=rand()%10;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
sum=Sum(2*N,a[0]);//сумма 0 и 1 строк
cout<<sum<<endl;
getch();
return 0;
}
int Sum(int N, int *a)
{ int i,s=0;
for(i=0;i<N;i++)
s+=a[i];
return s;
} |
|
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<iostream>
#include<conio.h>
using namespace std;
const int N=7;
int Sum(int N, int *a);
int main()
{ int **a;
int i,j,sum;
//выделение памяти, матрица-динамическая
a=new int *[N];
for(i=0;i<N;i++)
a[i]=new int [N];
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=rand()%10;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
sum=Sum(2*N,a);//сумма 0 и 1 строк
cout<<sum<<endl;
for(i=0;i<N;i++)
delete []a[i];
delete []a;
getch();
return 0;
}
int Sum(int N, int *a)
{ int i,s=0;
for(i=0;i<N;i++)
s+=a[i];
return s;
} |
|
P.S. Я в программировании новичок, о дин. матрицах узнал недавно и приём исп. ф-ии для одномерного массива к матрице применяю впервые. Однако в нюансах хочется разобраться как можно быстрее, заранее спасибо за помощь.
Добавлено через 11 минут
Не в тему: буду также благодарен, если кто-нибудь поделиться ссылкой на хорошее пособие по языку.
Особенно интересует присутствие интересных задач с решениями или предшествующим разбором типовых задач(объяснение важных приёмов).
Уровень знания языка низкий, математики - выпускника средней школы. В этом году поступаю и хочу поднабрать материала для самообразования и разбора непонятных тем.