|
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме: 798217
Репутация:
44
|
|
Моё маленькое задание.
Вот написал маленькую программу по Д\З в универе,вроде всё работает,но хотелось бы узнать ваше мнение на её счет.
Программирую на С++ я только с этого года,а Visual Studio Вообще лишь сегодня поставил
Код:
#include<iostream>
#include<math.h>
using namespace std;
/*Задание:
Есть два массива
G[k][k]={9,8,7,6,5,4,3,2,1}
E[k][k]={1,2,3,4,5,6,7,8,9}
k=3
Найти M[i][j]=Σ(L=0 до L=K-1)G[i][L]*E[L][j]
По русски
M[i][j]=G[i][0]*E[0][j]+G[i][1]*E[1][j]+G[i][2]*E[2][j]
И затем вывести её в виде матрицы.
*/
int main () {
//Для отладки поставь tmode=1
const int k=3,tmode=0;
int g[k][k]={9,8,7,6,5,4,3,2,1};
int e[k][k]={1,2,3,4,5,6,7,8,9};
int m[k][k],i,j,l,sum;
for (i=0;i<k;i++)
{
if(tmode==1){cout<<endl<<" || i="<<i;} //<===== отладка
//первый цикл,перебор массивов по i
for (j=0;j<k;j++)
{
if(tmode==1){cout<<" ||j="<<j<<endl;} //<===== отладка
//перебор по j
sum=0;
//SUM=0 нужен для того,чтобы к сумме не прибавлялось значение полученное в циклах по L до этого
for (l=0;l<k;l++)
{
//сумме присваеваем значение предидушей + текущего произведение
sum=sum+g[i][l]*e[l][j];
//На выходе получаем M[i][j]
if(tmode==1){cout<<" | sum[l="<<l<<"]="<<sum;}//<===== отладка
}
m[i][j]=sum;
if(tmode==1){cout<<" | m[i="<<i<<"][j="<<j<<"]="<<m[i][j]; //<===== отладка
cout<<endl;} //<===== отладка
}
}
//Второй этап=Вывод
printf("m[i/j]| 0 | 1 | 2 \n======|======|======|======\n");
for(i=0;i<k;i++)
{
printf(" %2d",i);
for (j=0;j<k;j++)
{
if (m[i][j]>99){printf(" | %2i",m[i][j]);}
else {printf(" | %2i",m[i][j]);}
}printf("\n======|======|======|======\n");
}
return 0;
}
|