Commit 9e29b0c9 by Jürgen Hein

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

parent f6b3f1b4
Showing with 35 additions and 75 deletions
/* Kodutöö 2. Variant 4.
/* Kodutöö 2. Variant 4.
......@@ -9,9 +9,8 @@
#define max 10
//Prototüübid
int Sisestus(char[]);
int SisestusCRida(int, int);
int SisestusCVeerg(int,int);
void MaatriksSisestus(int, int, int, int, double[][max], double[][max]);
int SisestusRidaVeerg(int,int);
void MaatriksSisestus(int, int, double[][max]);
void VäljastusAlgne(int, int, int, int, double[][max], double[][max]);
void MaatriksLiitmine(int, int, double[][max], double[][max], double[][max]);
void CVäljastus(int, int, double[][max]);
......@@ -20,15 +19,16 @@ int main(void)
{
int n = Sisestus("Sisestage A ridade arv"); //read
int m = Sisestus("Sisestage A veergude arv"); //veerud
int k = Sisestus("Sisestage B ridade arv"); //read
int l = Sisestus("Sisestage B veergude arv"); //veerud
double A[n][m];
double B[k][l];
int CRida = SisestusCRida(n, k);
int CVeerg = SisestusCVeerg(m,l);
double C[CRida][CVeerg];
int l = Sisestus("Sisestage B ridade arv"); //read
int k = Sisestus("Sisestage B veergude arv"); //veerud
double A[max][max];
double B[max][max];
int CRida = SisestusRidaVeerg(n, l);
int CVeerg = SisestusRidaVeerg(m, k);
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);
MaatriksLiitmine(CRida, CVeerg, A, B, C);
CVäljastus(CRida, CVeerg, C);
......@@ -39,65 +39,41 @@ int main(void)
int Sisestus(char teade[])
{
int arv;
int i;
int Kontroll;
int S[] = {1,2,3,4,5,6,7,8,9,10};
do
{
printf("%s\n", teade);
scanf("%d", &arv);
Kontroll = 0;
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.");
}
}while(Kontroll == 0);
if(arv <= 1 || arv >= 10)
{
printf("Sisestatud väärtus ei sobi, sisestage täisarv vahemikus 1...10.");
}
} while(arv <= 1 || arv >= 10);
return arv;
}
int SisestusCRida(int n, int k) //miinimum 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 SisestusRidaVeerg(int m, int l) //miinimum veergude või ridade arvu leidmine
{
int CVeerg;
int C;
if(m < l)
{
CVeerg = m;
C = m;
}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
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
{
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]);
if(Kontroll == 0)
{
......@@ -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
}
}
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[][m], double B[][l])
void VäljastusAlgne(int n, int m, int k, int l, double A[][max], double B[][max])
{
int i, j;
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]);
}
......@@ -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");
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]);
}
......@@ -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;
for(i=0; i<CRida; i++)
......@@ -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;
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