Peršokti į turinį
Simonas142

Pagalbos su pirminių sk. radimo faile programa

Recommended Posts

Sveiki, iškilo nedidelė problema. Bandžiau sukurti programą, kuri iš duomenų failo:

  1. Išspausdintų kiek iš viso skaičių yra tame faile.
  2. Išspausdintų pirminius skaičius.

Kadangi teisingai išspausdina kiek yra tame faile skaičių prie to nesikabinu, tačiau neteisingai išspausdina pirminius skaičius. Nežinau kur klaida, tad nutariau pasiteirauti jūsų.

Duomenys.txt failo duomenys: 

  • 7
  • 11
  • 7
  • 91
  • 12
  • 7
  • 33
  • 13
     

Kodas:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ifstream in ("Duomenys.txt");
    int a, k=0, sk;
    in >> a;
    ofstream out ("Rezultatai.txt");
    out << "Iš viso skaitmenų: " << endl << a << endl;
    out << "Iš jų pirminiai skaičiai šie: " << endl;
    for (int c=1; c<=a; c++)
    {
        in >> sk;
        for (int b=1; b<=sk; b++)
        {
            if (sk%b==0)
                k++;
        }
        if (k==2)
        {
            out << sk << endl;
        }
    }
    return 0;
}

 

Redaguota , nario Tautedorus

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį



#include <iostream>
#include <fstream>
#include <string> 
using namespace std;
#define MAX_LINES 16 //Daugiausiai eilučių kiek gali būti.
int main()
{
	string line[MAX_LINES];
	int _i = 0; //eilučių skaičius
	ifstream in("Duomenys.txt");

	while (getline(in, line[_i])) {//Gauname failą eilute po eilutes ir nukopijuojame jį į string array
		_i++;
	}

	
	ofstream out("Rezultatai.txt");
	out << "Iš viso skaitmenų: " << endl << _i << endl;
	out << "Iš jų pirminiai skaičiai šie: " << endl;

	for (int i = 0; i < _i; i++)//"Loopinam" per visas eilutes
	{
		out << line[i].c_str() << endl; //Kiekviena eilute išspausdiname consolėje.
	}

	system("pause"); //Tam kad programa sustotu.
	return 0;
}

Sutvarkytas kodas. Pakeistos vietos kaip for loopas, kintamujų vardai, linijų skaičiaus gavimas ir jų išspausdinimas. Jeigu kažkas neaišku, gali parašyti, atsakysiu.

 

Atkreipk dėmesį į MAX_LINES skaičių. Jeigu jis bus mažas, gali būti kad ne visos linijos atsispausdins.

Redaguota , nario IamU
Pakeistas loopo skaičiaus vardas.
  • Teigiamai 1

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį

Svečias
Ši tema yra užrakinta.

  • Narių peržiūri šį forumą:   0 nariai

    Nėra registruotų narių peržiūrinčių šį forumą.


  • SuperGames programele
  • SuperGames programele


×