Rakstīt ziņojumu 
 
Pavediena vērtējums:
  • 1 balsis - 5 vidējais
  • 1
  • 2
  • 3
  • 4
  • 5
maza problēma c++
Autors Ziņa
ilshe Atslēdzies
Junior Member
**

Ziņojumi: 7
Pievienojās: Apr 2010
Reputācija: 0
Ziņojums: #1
maza problēma c++
Labrīt! Smile

tātad problēmas radošais uzd šoreiz ir šāds:
Doti divi faili f1 un f2, kas satur veselus skaitļus, sakārtotus augošā secībā (šos failus var izveidot ar Notepad palīdzību). Izstrādāt programmu, kas nolasa skaitļus no failiem f1 un f2 un ieraksta tos failā f3 tādā veidā, lai skaitli failā f3 arī būtu sakārtoti augošā secībā.

vienīgā problēma ir pie izvadīšanas, bet skaidrības labad ierakstīšu visu kodu
Kods:
#include <fstream>
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
#include <string.h>
void main ()
{int i,j;
char sk1 [10]; char sk2 [10];

ifstream f1;
f1.open ("C:\\Documents and Settings\\Ilshe\\Desktop\\f1.txt");
if (!f1)
{cout << "File open error!"; getch(); return;}

ifstream f2;
f2.open ("C:\\Documents and Settings\\Ilshe\\Desktop\\f2.txt");
if (!f2)
{cout << "File open error!"; getch(); return;}

ofstream f3;
f3.open ("C:\\Documents and Settings\\Ilshe\\Desktop\\f3.txt");
if (!f3)
{cout << "File open error!"; getch(); return;}

while ( (!f1.eof()) && (!f2.eof()) )

{f1>>sk1>>ws;
f2>>sk2>>ws;

for (i=0; i<strlen(sk1); i++)
for (j=0; j<strlen(sk2); j++)

{
    if (sk1[i]<sk2[j])
f3<<"\n"<<sk1[i]<<"\n"<<sk2[j];
else f3<<"\n"<<sk2[j]<<"\n"<<sk1[i];
}

cout<<"\n informacija ierakstita faila";
f1.close();
f2.close();
f3.close();
getch();
}

tātad diezgan loģiski, ka šitais darbojas tā, ka salīdzina f1 pirmo skaitli un f2 pirmo sk. un tad ieraksta iekš f3 attiecīgi mazāko no tiem un tad lielāko. un tad attiecīgi salīdzina f1 otro sk. ar f2 otro sk. utt., bet tas nekam neder, ja, piem., f2 otrais sk. ir mazāks par f1 pirmo sk. utml.

tātad jautājums - kā panākt, lai viņš salīdzina visus ar visiem un tad ieraksta f3?

mēģināju vēl kkā šitā, bet te atkal izvada tikai mazāko no tiem sk., ko salīdzina. šķita, ka kkur varbūt trūkst {}, bet saliku visās iespējamās vietās un kombinācijās, un tāpat nepanācu to, ko vajag.
Kods:
for (i=0; i<strlen(sk1); i++)
for (j=0; j<strlen(sk2); j++)
{if (sk1[i]<sk2[j])
f3<<"\n"<<sk1[i];
else f3<<"\n"<<sk2[j];}

un vēl mēģināju piešķirt to mazāko vērtību vēl kkādam citam mainīgajam, bet šajā gadījumā arī ir tas pats, ka izvada tikai pusi no skaitļiem
Kods:
for (i=0; i<strlen(sk1); i++)
for (j=0; j<strlen(sk2); j++)
{    if (sk1[i]<sk2[j])
        min=sk1[i];
    else min=sk2[j];
f3<<"\n"<<min;}
}

būšu ļoti pateicīga, ja kāds varētu palīdzēt, pašai jau šķiet, ka šim nevajadzētu būt grūti, bet ir kkas , ko te nespēju atkost Very Happy
06.05.2010 08:25
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Rakstīt ziņojumu 


Ziņojumi šajā pavedienā
maza problēma c++ - ilshe - 06.05.2010 08:25
RE: maza problēma c++ - Maris Zinbergs - 06.05.2010, 08:38
RE: maza problēma c++ - AR - 06.05.2010, 10:09

Lēciens uz forumu:



Kontaktifizmati.lvAtgriezties uz augšuAtgriezties pie saturaArhīva skatsRSS sindikācija