edga01
-
Pranešimai
18 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
0%
Reputacijos išklotinė
-
edga01 sureagavo į Arik Struktūros
Pirma klaida – tu deklaruoji “gamzius” viena karta:
int main() { gyventojai A[Cmax]; //gyventoju masyvas int n=0; gyventojai B[Cmax]; // atrinktu pagal amziu gyventoju masyvas int m=0; int gamzius; //gyventojo amzius
o po to antra karta:
void Spausdinti(gyventojai A[],gyventojai B[],int &n,int m) { ofstream fr("rezultatai.txt"); int gamzius;
todėl tavo “gamzius” iš “Spausdinti” turi atsitiktinį skaičių.
Antra klaida:
B[m].pav=A[i].pav; B[m].vardas=A[i].vardas; B[m].gimmetai=A[i].gimmetai; m++;
skaičiuoji “m”, o čia paduodi “n”:
for(int i=0;i<n;i++) { fr<<left<<setw(15)<<B[i].vardas<<" "<<setw(15)<<B[i].pav<<" "<<B[i].gimmetai<<" "<<endl; }
-
edga01 sureagavo į Neteistas Struktūros
Viska gerai rodo.
Rezultatai.txt
įvedus 35
Gyventoju sarasas:
--------------------
Vardas1 Pavarde1 1980
Vardas2 Pavarde2 1970
Vardas3 Pavarde3 1960
--------------------
Gyventojai su nurodytu amziumi:
Vardas1 Pavarde1 1980
O čia ateičiai jeigu laikysi egzamina su funkcijomis.
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
struct gyventojai{
string vardas; //Pirmasis strukturos elementas
string pav; //Antrasis strukturos elementas
int gimmetai; //Treciasis strukturos elementas
int amzius; //Kentvirtasis strukturos elementas
};
//--------------------------------------
//Konstantos
//--------------------------------------
const char CDfv[] = "duomenys.txt";
const char CRfv[] = "rezultatai.txt";
const int Cmax = 30;
//--------------------------------------
//Funkcijos
//--------------------------------------
void skaityti(gyventojai A[], int &n);
void rodyti(gyventojai A[], int n, int gamzius);
//--------------------------------------
int main()
{
gyventojai A[Cmax];
int n; //Kiek gyventoju
int gamzius; //gyventojo amzius
skaityti(A, n);
cout<<"Iveskite gyventojo amziu: "<<endl;
cin>>gamzius; //gyventojo amzius
rodyti(A,n,gamzius);
return 0;
}
//------------------------------------
//Nuskaitomo iš failo duomenys suzinome amziu ir tuo paciu suzinome kiek yra gyventoju.
void skaityti(gyventojai A[], int &n)
{
n = 0;
ifstream fd(CDfv);
while(!fd.eof())
{
fd>>A[n].vardas>>A[n].pav>>A[n].gimmetai;
A[n].amzius=2015-A[n].gimmetai;
n++;
}
fd.close();
}
//-----------------------------------------
// patikrina kiek yra gyventoju su tokiu amziu ir iraso rezultatus i faila
void rodyti(gyventojai A[], int n, int gamzius)
{
ofstream fr(CRfv);
fr<<" Gyventoju sarasas: "<<endl;
fr<<"--------------------"<<endl;
for(int i=0;i<n;i++)
fr<<left<<setw(15)<<A.vardas<<setw(15)<<A.pav<<" "<<A.gimmetai<<endl;
fr<<"--------------------"<<endl;
fr<<"Gyventojai su nurodytu amziumi: "<<endl;
for(int i=0;i<n;i++)
{
if(A.amzius==gamzius)
fr<<left<<setw(15)<<A.vardas<<setw(15)<<A.pav<<" "<<A.gimmetai<<endl;
}
fr.close();
}
-
edga01 sureagavo į Tadas96 Masyvai
#include <fstream> using namespace std; int n; int m; int X[100], Y[100]; int X1[100], Y1[100]; void skaitom(); void spausdinam(); int main() { skaitom(); spausdinam(); return 0; } void skaitom() { ifstream fd("U2.txt"); fd >> n; for(int i = 0; i < n; i++) { fd >> X[i] >> Y[i]; if( X[i] == 0 || Y[i] == 0){ m++; X1[m] = X[i]; Y1[m] = Y[i]; } } fd.close(); } void spausdinam() { ofstream fr("U2rez.txt"); fr << "X " << "Y" << endl; fr << "-------" << endl; for(int i = 1; i <= m; i++) fr << X1[i] << " " << Y1[i] << endl; fr.close(); }
pažiūrėk, gal tiks. :)
-
edga01 sureagavo į Imago Funkcijos
Pas tave yra bent keleta klaidu:
- niekad nekvieti savo DidMaz funkcijos;
- priskirdamas reiksmes (min/max) naudojai '==', o ne '='
- nespausdini rezultatu kiekvienos eilutes, su tavo kodu (jei jis veiktu) spausdintum neaisku ka;
#include <iostream> #include <fstream> #include <limits> using namespace std; void DidMaz( int a, int b, int c, int &min, int &max); int main() { int n,a,b,c,min,max; fstream fd("Duomenys.txt"); ofstream fr("Rezultatai.txt"); fd>>n; for(int i=1; i<=n; i++) { min = numeric_limits<int>::max(); // didziausias galimas int max = numeric_limits<int>::min(); // maziausias galimas int fd>>a>>b>>c; // imam naujus skaicius DidMaz(a,b,c,min,max); fr << i << ": " << "min=" << min << "; max=" << max << endl; } fd.close(); fr.close(); return 0; } void DidMaz( int a, int b, int c, int &min, int &max) { // min min = a < b ? a : b; // nustatom maziausia tarp a ir b min = c < min ? c : min; // lyginam c su esamu // max max = a > b ? a : b; // nustatom didziausia tarp a ir b max = c > max ? c : max; // lyginam c su esamu }
Beje, galiu paklausti, cia mokyklines uzduotys ar is studiju kokiu?
-
-
edga01 sureagavo į MindeB Ciklas while
Kitą kartą pats pabandyk paspręsti.
1.
int a,x,n; a = 1000; x = 200; n=1; while(n<=12) { cout << n << " " << a << endl; a+=x; n++; } return 0; Rezultatas: 1 1000 2 1200 3 1400 4 1600 5 1800 6 2000 7 2200 8 2400 9 2600 10 2800 11 3000 12 3200
2.
Ėmiau pradinį programuotojo atlyginimą kaip pirmą mėnesį.
{ int a,x,n, men; a = 1000; x = 200; men = 3; n=1; while(n<=men) { cout << n << " " << a << endl; a+=x; n++; } return 0; } Rezultatas: 1 1000 2 1200 3 1400
3.
{ int a,x,n,index,apradinis; a=1000; x=200; index=1; n=1; apradinis=a; while(n>0) { a+=x; index++; if(a==2*apradinis) { n=-1; } } cout << index << endl; return 0; } Rezultatas: 6.
4.
{ int a,x,n,b,index; a = 1000; x = 200; b = 1500; index=1; n=1; while(n>0) { a+=x; index++; if(a>=b) { n=-1; } } cout << index << endl; return 0; } Rezultatas: 4.
Parašiau skubomis, tad nenustebčiau jei kas rastų klaidų.