Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[Pagalbos] C++ uždavinyje gaunu ne ta atsakyma


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2599 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, taigi prašau ir vėl jūsų pagalbos, atrodo lyg ir gerai padarau pirma etapa, bet atsakymą gaunu 39 kai turėčiau gauti visus gyventojus sudėjus 34.. Kur gali būti klaida?

Kodas:

#include <iostream>
#include <cmath>
#include <iomanip>
#include <fstream>

using namespace std;
const char CDfv[] = "duomenysgyv.txt";
const char CRfv[] = "rezultataigyv.txt";
//---------------------------------------
void Skaityti (int A[], int&n);
void Spausdinti (int A[], int n);
int isviso(int A[], int n);
int desine(int A[], int n);
int kaire(int A[], int n);
int main()
{
    int Gyv[100];
    int n;
    int isv;
    int des;
    int kai;
    ofstream fr;
    Skaityti(Gyv,n);
    Spausdinti(Gyv,n);
    fr.open(CRfv, ios::app);
    isv=isviso(Gyv,n);
    fr<<isv<<endl;
    des=desine(Gyv,n);
    fr<<des<<endl;
    fr.close();
    return 0;
}
int isviso(int A[], int n)
{
    int suma=0;
    for (int i=0; i<n; i++)
    if (A[i]>0)
            suma=suma+A[i];
    return suma;
}
int desine(int A[], int n)
{
    int kiek=0;
    for (int i=0; i<n; i++)
    if (A[i]%2==0)
    kiek=kiek+1;
    return kiek;
}
void Skaityti(int A[], int&n)
{
    ifstream fd(CDfv);
    fd>>n;
    for (int i=0; i<n; i++)
        fd>>A[i];
    fd.close();
}
void Spausdinti(int A[], int n)
{
    ofstream fr(CRfv);
    desine(A,n);
    isviso(A,n);
    fr.close();
}

Uždavinys:

Screenshot_34.png

Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Išsisprendžiau 3dalis, bet su vidurkiu užkliuvau kas čia gali būti blogai ? Nes vis gaunu ats tik 1.. ?

Visas kodas: 

#include <iostream>
#include <cmath>
#include <iomanip>
#include <fstream>

using namespace std;
const char CDfv[] = "duomenysgyv.txt";
const char CRfv[] = "rezultataigyv.txt";
//---------------------------------------
void Skaityti (int A[],int B[], int&n);
void Spausdinti (int A[],int B[],  int n);
int isviso(int A[],int B[],  int &n);
int desine(int A[],int B[],  int n);
int kaire(int A[],int B[],  int n);
double vidkai(int A[],int B[],  int n);
double viddes(int A[],int B[],  int n);
//---------------------------------------
int main()
{
    int A[100]; int B[20];
    int n;
    int isv;
    int des;
    int kai;
    int vid;
    ofstream fr;
    Skaityti(A,B,n);
    Spausdinti(A,B,n);
    fr.open(CRfv, ios::app);
    isv=isviso(A,B,n);
    fr<<isv<<endl;
    kai=kaire(A,B,n);
    fr<<kai<<endl;
    des=desine(A,B,n);
    fr<<des<<endl;
    vid=vidkai(A,B,n);
    fr<<vidkai<<endl;
    fr.close();
    return 0;
}
int isviso(int A[],int B[],  int &n)
{
    int suma=0;
    for (int i=0; i<n; i++)
    if (A[i]>0)
            suma=suma+B[i];
    return suma;
}
int desine(int A[],int B[],  int n)
{
    int suma=0;
    for (int i=0; i<n; i++){
    if (B[i]%2==0)
    suma=suma+B[i];
    }
    return suma;
}
int kaire(int A[],int B[],  int n)
{
    int suma=0;
    for (int i=0; i<n; i++)
    if (B[i]%2==1)
    {
        suma=suma+B[i];
    }
    return suma;
}
void Skaityti(int A[],int B[],  int&n)
{
    ifstream fd(CDfv);
    fd>>n;
    for (int i=0; i<n; i++)
        fd>>A[i]>>B[i];
    fd.close();
}
void Spausdinti(int A[],int B[],  int n)
{
    ofstream fr(CRfv);
    isviso(A,B,n);
    desine(A,B,n);
    kaire(A,B,n);
    fr.close();
}
double vidkai(int A[],int B[], int n)
{
    int suma=0;
    int kiek=0;
    for (int i=0; i<n; i++)
    if (B[i]%2==1)
    {
            suma=suma+B[i];
            kiek=kiek+1;
    }
            return suma/kiek;
    return 0;}

 

Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 savaičių...

Išsprendžiau uždavinį(Nors turbūt, tu jau ir pats jį padarei). Panaudojau struktūras, kadangi sąlygoje nenurodyta, jog namų numeriai visados būna iš eilės.

//--------------------------------------- Bibliotekos
#include <iostream>
#include <fstream>
#include <iomanip>
//--------------------------------------- Konstantos
using namespace std;
const int NMax = 499;
const char Input[] = "duomenys.txt";
const char Output[] = "rezultatai.txt";
//--------------------------------------- Struktūros
struct Namas
{
	int nr;
	int sk;
};
//--------------------------------------- Funkcijų aprašas
void Skaityti(Namas A[], int & n);
int Viso(Namas A[], int n);
int VisoK(Namas A[], int n);
int VisoD(Namas A[], int n);
double VidK(Namas A[], int n);
double VidD(Namas A[], int n);
void Spausdinti(Namas A[], int n);
//--------------------------------------- Papildomos funkcijos
void Skaityti(Namas A[], int & n)// Nuskaitymo funkcija
{
	ifstream in(Input);
	in >> n;
	for (int i = 0; i < n; i++)
		in >> A[i].nr >> A[i].sk;
	in.close();
}
int Viso(Namas A[], int n)// Visų gyventojų skaičiavimo funkcija
{
	int suma = 0;
	for (int i = 0; i < n; i++)
		suma += A[i].sk;
	return suma;
}
int VisoK(Namas A[], int n)// Visų gyventojų gyvenančių kairiojoje gatvės pusėje skaičiavimo funkcija
{
	int suma = 0;
	for (int i = 0; i < n; i++)
		if (A[i].nr % 2 != 0)
			suma += A[i].sk;
	return suma;
}
int VisoD(Namas A[], int n)// Visų gyventojų gyvenančių dešiniojoje gatvės pusėje skaičiavimo funkcija
{
	int suma = 0;
	for (int i = 0; i < n; i++)
		if (A[i].nr % 2 == 0)
			suma += A[i].sk;
	return suma;
}
double VidK(Namas A[], int n)// Kairėje gatvės pusėje gyvenančių gyventojų vidurkio skaičiavimo funkcija
{
	int suma = 0;
	int kiek = 0;
	for (int i = 0; i < n; i++)
		if (A[i].nr % 2 != 0)
		{
			suma += A[i].sk;
			kiek++;
		}
	return (double)suma / kiek;
}
double VidD(Namas A[], int n)//  Dešinejė gatvės pusėje gyvenančių gyventojų vidurkio skaičiavimo funkcija
{
	int suma = 0;
	int kiek = 0;
	for (int i = 0; i < n; i++)
		if (A[i].nr % 2 == 0)
		{
			suma += A[i].sk;
			kiek++;
		}
	return (double)suma / kiek;
}
void Spausdinti(Namas A[], int n)// Išvedimo funkcija
{
	ofstream out(Output);
	out << Viso(A, n) << endl;
	out << VisoK(A, n) << endl;
	out << VisoD(A, n) << endl;
	out << setprecision(2) << fixed;// Nustatomi 2 skaičiai po kablelio
	out << VidK(A, n) << endl;
	out << VidD(A, n) << endl;
	out.close();
}
//--------------------------------------- Pagrindinė funkcija
int main()
{
	int n;
	Namas A[NMax];
	Skaityti(A, n);
	Spausdinti(A, n);
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2599 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai


×
×
  • Sukurti naują...