Commit 9e29b0c9 by Jürgen Hein

Kood parandatud, töötab õigesti. Vähendatud funktsioonide arvu. Kodutoo2MassiividLiitmine.c

parent f6b3f1b4
Showing with 31 additions and 71 deletions
/* Kodutöö 2. Variant 4. /* Kodutöö 2. Variant 4.
...@@ -9,9 +9,8 @@ ...@@ -9,9 +9,8 @@
#define max 10 #define max 10
//Prototüübid //Prototüübid
int Sisestus(char[]); int Sisestus(char[]);
int SisestusCRida(int, int); int SisestusRidaVeerg(int,int);
int SisestusCVeerg(int,int); void MaatriksSisestus(int, int, double[][max]);
void MaatriksSisestus(int, int, int, int, double[][max], double[][max]);
void VäljastusAlgne(int, int, int, int, double[][max], double[][max]); void VäljastusAlgne(int, int, int, int, double[][max], double[][max]);
void MaatriksLiitmine(int, int, double[][max], double[][max], double[][max]); void MaatriksLiitmine(int, int, double[][max], double[][max], double[][max]);
void CVäljastus(int, int, double[][max]); void CVäljastus(int, int, double[][max]);
...@@ -20,15 +19,16 @@ int main(void) ...@@ -20,15 +19,16 @@ int main(void)
{ {
int n = Sisestus("Sisestage A ridade arv"); //read int n = Sisestus("Sisestage A ridade arv"); //read
int m = Sisestus("Sisestage A veergude arv"); //veerud int m = Sisestus("Sisestage A veergude arv"); //veerud
int k = Sisestus("Sisestage B ridade arv"); //read int l = Sisestus("Sisestage B ridade arv"); //read
int l = Sisestus("Sisestage B veergude arv"); //veerud int k = Sisestus("Sisestage B veergude arv"); //veerud
double A[n][m]; double A[max][max];
double B[k][l]; double B[max][max];
int CRida = SisestusCRida(n, k); int CRida = SisestusRidaVeerg(n, l);
int CVeerg = SisestusCVeerg(m,l); int CVeerg = SisestusRidaVeerg(m, k);
double C[CRida][CVeerg]; double C[max][max];
MaatriksSisestus(n, m, l, k, A, B); MaatriksSisestus(n, m, A);
MaatriksSisestus(l, k, B);
VäljastusAlgne(n, m, l, k, A, B); VäljastusAlgne(n, m, l, k, A, B);
MaatriksLiitmine(CRida, CVeerg, A, B, C); MaatriksLiitmine(CRida, CVeerg, A, B, C);
CVäljastus(CRida, CVeerg, C); CVäljastus(CRida, CVeerg, C);
...@@ -39,65 +39,41 @@ int main(void) ...@@ -39,65 +39,41 @@ int main(void)
int Sisestus(char teade[]) int Sisestus(char teade[])
{ {
int arv; int arv;
int i;
int Kontroll;
int S[] = {1,2,3,4,5,6,7,8,9,10};
do do
{ {
printf("%s\n", teade); printf("%s\n", teade);
scanf("%d", &arv); scanf("%d", &arv);
Kontroll = 0; if(arv <= 1 || arv >= 10)
for(i=0;i<max;i++)
{
if(arv == S[i]) //Kontroll, kas väärtus on täisarv vahemikus 1...10.
{
Kontroll = 1; //Sisestus sobib piirkonda
}
}
if(Kontroll == 0)
{ {
printf("Sisestatud väärtus ei sobi, sisestage täisarv vahemikus 1...10."); printf("Sisestatud väärtus ei sobi, sisestage täisarv vahemikus 1...10.");
} }
} while(arv <= 1 || arv >= 10);
}while(Kontroll == 0);
return arv; return arv;
} }
int SisestusCRida(int n, int k) //miinimum ridade arvu leidmine int SisestusRidaVeerg(int m, int l) //miinimum veergude või ridade arvu leidmine
{
int CRida;
if(n < k)
{
CRida = n;
}else
{
CRida = k;
}
return CRida;
}
int SisestusCVeerg(int m, int l) //miinimum veergude arvu leidmine
{ {
int CVeerg; int C;
if(m < l) if(m < l)
{ {
CVeerg = m; C = m;
}else }else
{ {
CVeerg = l; C = l;
} }
return CVeerg; return C;
} }
void MaatriksSisestus(int n, int m, int k, int l, double A[][m], double B[][l]) void MaatriksSisestus(int n, int m, double A[][max])
{ {
int i, j, Kontroll; //järjenumbrid, scanf kontrolli muutuja int i, j, Kontroll; //järjenumbrid, scanf kontrolli muutuja
for(i=0;i<m;i++) //veergude tsükkel for(i=0;i< n;i++) //veergude tsükkel
{ {
for(j=0;j<n;j++) //ridade tsükkel for(j=0;j<m;j++) //ridade tsükkel
{ {
do do
{ {
printf("Sisestada A väärtus veerg [%d], rida [%d]", i,j); printf("Sisestada A väärtus veerg [%d], rida [%d]", j,i);
Kontroll = scanf("%lf", &A[i][j]); Kontroll = scanf("%lf", &A[i][j]);
if(Kontroll == 0) if(Kontroll == 0)
{ {
...@@ -107,31 +83,14 @@ void MaatriksSisestus(int n, int m, int k, int l, double A[][m], double B[][l]) ...@@ -107,31 +83,14 @@ void MaatriksSisestus(int n, int m, int k, int l, double A[][m], double B[][l])
} while(Kontroll == 0); //reaalarvu kontroll } while(Kontroll == 0); //reaalarvu kontroll
} }
} }
for(i=0;i<l;i++) //veergude tsükkel
{
for(j=0;j<k;j++) //ridade tsükkel
{
do
{
printf("Sisestada B väärtus veerg [%d], rida [%d]", i,j);
Kontroll = scanf("%lf", &B[i][j]);
if(Kontroll == 0)
{
printf("Sisestatud väärtus ei sobi, sisestage reaalarv");
scanf("%*s");
}
} while(Kontroll == 0);
}
}
} }
void VäljastusAlgne(int n, int m, int k, int l, double A[][max], double B[][max])
void VäljastusAlgne(int n, int m, int k, int l, double A[][m], double B[][l])
{ {
int i, j; int i, j;
printf("\nSisestatud maatriks A:\n"); printf("\nSisestatud maatriks A:\n");
for(i = 0; i < m; i++) for(i = 0; i < n; i++) //n ja m vahetus
{ {
for(j = 0; j < n; j++) for(j = 0; j < m; j++)
{ {
printf("%lf ", A[i][j]); printf("%lf ", A[i][j]);
} }
...@@ -139,9 +98,9 @@ void VäljastusAlgne(int n, int m, int k, int l, double A[][m], double B[][l]) ...@@ -139,9 +98,9 @@ void VäljastusAlgne(int n, int m, int k, int l, double A[][m], double B[][l])
} }
printf("\nSisestatud maatriks B:\n"); printf("\nSisestatud maatriks B:\n");
for(i = 0; i < l; i++) for(i = 0; i < k; i++) //k ja l vahetus
{ {
for(j = 0; j < k; j++) for(j = 0; j < l; j++)
{ {
printf("%lf ", B[i][j]); printf("%lf ", B[i][j]);
} }
...@@ -149,7 +108,7 @@ void VäljastusAlgne(int n, int m, int k, int l, double A[][m], double B[][l]) ...@@ -149,7 +108,7 @@ void VäljastusAlgne(int n, int m, int k, int l, double A[][m], double B[][l])
} }
} }
void MaatriksLiitmine(int CRida, int CVeerg, double A[][CVeerg], double B[][CVeerg], double C[][CVeerg]) void MaatriksLiitmine(int CRida, int CVeerg, double A[][max], double B[][max], double C[][max])
{ {
int j, i; int j, i;
for(i=0; i<CRida; i++) for(i=0; i<CRida; i++)
...@@ -161,7 +120,8 @@ void MaatriksLiitmine(int CRida, int CVeerg, double A[][CVeerg], double B[][CVee ...@@ -161,7 +120,8 @@ void MaatriksLiitmine(int CRida, int CVeerg, double A[][CVeerg], double B[][CVee
} }
} }
} }
void CVäljastus(int CRida, int CVeerg, double C[][CVeerg])
void CVäljastus(int CRida, int CVeerg, double C[][max])
{ {
int j, i; int j, i;
printf("\nMaatriks C:\n"); printf("\nMaatriks C:\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment