Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы (2) / Laba6 / ZADACHA6
.CPP#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#define NMAX 100
// Opredelenie tipov peremennih
float *Vvod (char *ifile,int *n);
int Sum(float x[NMAX], int n, float q);
int main (int argc, char *argv[])
{
float *a, *b, *c;
float sa, sb, sc, q, mini;
int an, bn, cn;
int i;
if (argc < 3)
{
printf ("Neukazany neobhodimye parametry zapuska!\n");
getch();
return 0;
}
// Vvodim 3 masiva
if ((a = Vvod (argv[1], &an)) == 0)
{
printf ("Oshibka pri vvode massiva A!\n");
return 0;
}
if ((b = Vvod (argv[2], &bn)) == 0)
{
printf ("Oshibka pri vvode massiva B!\n");
return 0;
}
if ((c = Vvod (argv[3], &cn)) == 0)
{
printf ("Oshibka pri vvode massiva C!\n");
return 0;
}
// Vichislenie iskomih summ
cout << "ЋЇаҐ¤Ґ«Ёвм, ў Є Є®¬ ¬ ббЁўҐ ¬ҐмиҐ Є®«ЁзҐбвў® н«Ґ¬Ґв®ў,\nЎ®«миЁе § ¤ ®Ј® зЁб« \n";
printf("‚ўҐ¤ЁвҐ зЁб«®\n");
cin>>q;
sa= Sum(a, an, q);
sb= Sum(b, bn, q);
sc= Sum(c, cn, q);
cout << "ќ«Ґ¬Ґв®ў, Ў®«миЁе § ¤ ®Ј® зЁб« " << q;
q=sa;
if (sb < q) q=sb;
if (sc < q) q=sc;
if ((q == sa) && (q == sb) && (q == sc)) { cout <<" ў® ўбҐе ¬ ббЁў е ®¤Ё Є®ў®,\nЁ а ў® "<< sa; }
else if ((q == sa) && (q == sb)) {cout <<" ў ¬ ббЁў е 1 Ё 2 ¬ҐмиҐ, 祬 ў 3,\nЁ а ў® "<< sa; }
else if ((q == sa) && (q == sc)) {cout <<" ў ¬ ббЁў е 1 Ё 3 ¬ҐмиҐ, 祬 ў 2,\nЁ а ў® "<< sa; }
else if ((q == sb) && (q == sc)) {cout <<" ў ¬ ббЁў е 2 Ё 3, ¬ҐмиҐ зҐ¬ ў 1,\nЁ а ў® "<< sb; }
else if (q == sa) {cout <<" ў ¬ ббЁўҐ 1 ¬ҐмиҐ, 祬 ў ®бв «мле,\nЁ а ў® "<< sa; }
else if (q == sb) {cout <<" ў ¬ бЁбўҐ 2 ¬ҐмиҐ, 祬 ў ®бв «мле,\nЁ а ў® "<< sb; }
else if (q == sc) {cout <<" ў ¬ ббЁўҐ 3 ¬ҐмиҐ, 祬 ў ®бв «мле,\nЁ а ў® "<< sc; }
free(a); free(b); free(c);
getch();
}
float *Vvod (char *ifile, int *n)
{
FILE *file;
int i;
float *x;
if ((file = fopen (ifile, "r")) == NULL)
{
printf ("Oshibka pri otkrytii fajla '%s'!\n", ifile);
return 0;
}
if (fscanf (file, "%i", n) < 1)
{
printf ("Oshibka pri chtenii iz fajla '%s'!\n", ifile);
return 0;
}
if (*n <= 0 || *n > 100)
{
printf ("Kolichestvo elementov massiva dolzhno bit' ot 1 do %d!\n", NMAX);
return 0;
}
if ((x = (float *)malloc(*n * sizeof(float))) == NULL)
{
printf ("Nedostatochno pamyati!\n");
fclose (file);
return 0;
}
cout << "Massiv "<<ifile<<": "<<*n<<" elementov: ";
for (i = 0; i < *n; i++)
if (fscanf (file, "%f", &x[i]) < 1)
{
fprintf (file,"Oshibka pri chtenii iz fajla '%s'!\n",ifile);
fclose(file);
return 0;
}
else {
cout << x[i] <<", ";
}
fclose(file);
cout <<"\n";
return x;
}
//poisk summ
int Sum(float x[], int n, float q)
{ int i;
int s=0;
for (i=0; i<n; i++)
{ if (x[i] > q )
s++;
}
return s;
}