Julinho
-
Pranešimai
60 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
0%
Turinio tipas
Forumas
Kalendorius
Parduotuvė
Akademija
Skelbimai
Julinho Pranešimai
-
-
Tai čia sprendimas trivialus, yra n+k būtų padaryt praktiškai tą patį. Vienas iš kitokių kelių, vietoj bool'o galėjai panaudotos pirštinės numerius nuliais užpildyt ir jos nebeskaičiuotų. Tas bool'as šiuo atvėju kaip flagas nurodantis, praleist pirštinę jei su ja pora jau sudaryta.
Ačiū, supratau dabar dėl ko reikėjo panaudot šitą bool :)
-
Bandyk taip:
Pridėk į struktūrą naują kintamąjį
struct Pirstines { //failo skaitymui int Sk1; // Vieta pirmam skaičiui iš failo int Sk2; // antram skaičiui int Sk3; // trečiam skaičiui bool used; };
Skaityme visur jį inicializuok
for(int i = 0; i < n; i ++) { fd >> A[i].Sk1 >> A[i].Sk2 >> A[i].Sk3; A[i].used = false; }
Ir tikrinant poras, jau panadotas išmesk
if(A[i].Sk3 == A[j].Sk3 && A[i].Sk1 == m && A[j].Sk1 == m && A[i].Sk2 != A[j].Sk2 && (!A[i].used && !A[j].used)) { b++; A[i].used = true; A[j].used = true; break; }
Dėkui labai, gal galėtum paaiškint kodėl tiap reikėjo rašyt? nes su tuo bool tipu labai retai kada susiduriu. :)
-
Gal kas gal padėt dėl ko su moterim tai yra pradinių numeriu 4 kur prasideda eilutė man išmeta 3 poras o ne 2?
-
Blemba ant greičio tikrinau su vyriškom pirštinėm tai tiko gerai, bet su moteriškom atranda dar vieną porą... nors jos neturėtų būt...
-
Sveiki, taigi susidūriau su problema failo nusiskaitymą pasidariau gerai, viskas gerai, bet yra viena vietą kai skaičiuoju pirštinių poras man išmeta trys nors turėtu išmest 2.Ką darau Blogai? VIsas kodas ir duomenų failas:
14 4 1 25 4 1 13 4 2 15 4 2 25 3 2 42 3 2 25 4 1 25 3 1 25 4 1 25 3 1 42 3 1 25 3 1 36 4 1 24 4 1 15
const int Cmax = 100; const int Cpav = 20; struct Pirstines { //failo skaitymui int Sk1; // Vieta pirmam skaičiui iš failo int Sk2; // antram skaičiui int Sk3; // trečiam skaičiui }; //funkcijos void Skaityti (Pirstines A[], int & n) { ifstream fd(Cdf); fd >> n; for(int i = 0; i < n; i ++) { fd >> A[i].Sk1 >> A[i].Sk2 >> A[i].Sk3; } fd.close(); } void Spausdinti (Pirstines A[], int n) { ofstream fs(Cfd); for(int i = 0; i < n; i ++) { fs<<A[i].Sk1 << " "<< A[i].Sk2 << " "<< A[i].Sk3<<endl; } fs.close(); } // kiek yra piršinių vyriškos ir moteriškos lyties. int KiekYraPirstiniu(Pirstines A[], int n, int m) { int c = 0; for(int i = 0; i < n; i++) { if(A[i].Sk1 == m) { c++; } } return c; } int PirstiniuPoros (Pirstines A[], int n,int m) { int b = 0; for(int i = 0; i < n; i ++) { for(int j = i + 1; j < n; j++) { if(A[i].Sk3 == A[j].Sk3 && A[i].Sk1 == m && A[j].Sk1 == m && A[i].Sk2 != A[j].Sk2) { b++; } } } return b; } int main() { int n; // pirsšiniu skaičius int v = 3; int m = 4; // indeksai vyru ir moteru int d = 2, k = 1; int mot, vyr; // išviso piršinių kiek yra viriškos lyties ir keik moteriškos. int motp,vyrp; // vyriškų porų ir moteriškų porų piršinių sk. Pirstines A[Cmax]; Skaityti(A,n); mot = KiekYraPirstiniu(A,n,m); vyr = KiekYraPirstiniu(A,n,v); vyrp = PirstiniuPoros(A,n,v,); Spausdinti(A,n); cout<<vyrp; return 0; }
-
Žinok, pakeičiau Cpav į 15. vistiek nk, bet dabar man rodos supratau, kad Getlie(fd,A.vard) negaunu jokios info tusčias langas.
REDAGUOTA:
Radau, kalida buvo, nes duomenų faile tarpus dariau su tabu. :D
-
Sveiki, taigi susidūriau su problema. ieškojau klaidos, bet rasti negalėjau. Yra toks reikalas, kad reikia rasti Vienodus vardus. Duomenų faile duota Pavardė/vardas :
7 Margis Petras Batuotas Algis Barsė Rita Barsis Rimas Liepa Petras Liepa Rima Liepa Rita
ir kai ieškau vienodu vardus man turi rezultate spausdint Vardas ir kiek kartų jis pasikartoja, tačiau gaunu šita:
Margis Petras 7
Visas programos kodas:
const char Cdf[] = "mokiniai.txt"; const char Cfd[] = "rez.txt"; const int Cmax = 300; const int Cpav = 20; struct Zmogus{ string pav, vard; int kiek; }; void Skaityti(Zmogus A[], int & n) { char eil[Cpav + 1]; ifstream fd(Cdf); fd>>n; fd.ignore(80, '\n'); for(int i = 0; i < n; i ++) { fd.get(eil,Cpav); A[i].pav = eil; getline(fd,A[i].vard); A[i].kiek = 1; } fd.close(); } void Spausdinti ( Zmogus A[], int n, string pav) { ofstream fs(Cfd); fs<< pav <<endl; for(int i = 0; i < n ; i ++) { fs <<A[i].pav<<" " <<A[i].vard<<" " <<A[i].kiek<<endl; } fs.close(); } int Yra(Zmogus A[], int n, string pav) { for(int i = 0; i < n; i++) { if(A[i].vard == pav) { return i; } } return -1; } void Atrinkti (Zmogus A[], int n, Zmogus B[], int & m) { m = 0; for(int i = 0 ; i < n; i++) { int k = Yra(B,m,A[i].vard); if ( k >= 0) { B[k].kiek++; } else{ B[m] = A[i]; m++; } } } int main() { Zmogus A[Cmax], B[Cmax]; int n,m; Skaityti(A,n); Atrinkti(A,n,B,m); Spausdinti(B,m,"Vardai:"); return 0; }
Ką ne taip darau?
-
Valdai, žiūrėk tipo turiu 51 simbolį ir tipo man daryt
for(int i = 0; i < 51; i++ { if(A[i] == ' ') { cout<<A[i]<<endl; } }
tipo taip? nu čia iš galvos rašiau.
-
Blecha xebra niekaip nesuprantu, gal ir visiškas dundukas aš, bet gal galit paaiškint? mėginu kažką daryt su stringo ilgiu žinau, kad ilgis 51 simbolis ir tada va neįsivaizduoju ką daryt.
-
Sveiki, turiu uždavinį kad iš pateikto duomenų faile esančio sąrašo man reikia išrinkti miestus, kurie sudaryti iš 2 žodžių.
duomenų failo pvz:
5 // kiek miestų pav surašyta Druskininkai Naujoji Akmenė Trakai Zarasai Kazlų Rūda
Tai rezultatų faile turėtų būt surašytą tik Kazlų ruda ir Naujoji akmenė.
Gal kas žinot kaip man išrinkti tuos miestus? Mėginau daryt su if(Getline(fd,A) == ' ') ir tada spausdint, bet metė errorą.
o dabar sėdėdamas išmąsčiau, kad galima suskaičiuot koks yra didžiausias miesto pavadinimas iš kiek simbolių susideda sukurt naują char tipo masyvą iš tiek kiek yra daugiausia raidžių ir tada kiekvieną eilutę priskirt masyvui ir tikrinti ar yra tarpo simbolis?
gal kas galit padėt? ar yra kokia funkcija string, kad sužinot ar yra tarpo simbolis?
-
šiaip netaip išmąsčiau kaip padaryt :) Kodas, gal kam prireiks :)
int main() { int n; ifstream fd(Cdf); fd>>n; int A[n]; for(int i = 0; i < n; i++) { fd >> A[i]; } for(int i = 0; i < n; i ++) { if(A[i] % 2 !=0) { for(int j = i; j < n; j++) { A[j] = A[j+1]; } n--; } } for(int i = 0; i < n; i++) { cout<<A[i]<<" "; } fd.close(); return 0; }
-
nu pasidariau, kad gaučiau skaičius. bet išeina taip , kad gaunu 2 2 4 4 6 6 8 8 8.
gal kas žinot kaip padaryt, kad jie būtų tik po vieną? nu ta prasme 2 4 6 8.?
-
Erase nėra tokios funkcijos ;D
-
SVeiki, taigi kaip šalinti iš masyvo vieną skaičių suprantu, bet kada yra jų tarkim 3 - 5 ir reikia naudoti kitą masyvą nelabai suprantu. Norėčiau, kad paaiškintumėt kaip šalint skaičius iš masyvo turint kitam masyve skaičių indeksus kuriuos reikia pašalinti iš masyvo A[];
Užduotis: reikia iš masyvo A pašalinti nelyginius skaičius ir juos surikiuoti. surikiuoti moku, bet pašalinti iš masyvo niekaip.. bandžiau visaip. kodas ką mėginau paskutinį kartą daryt :
int main() { int n; ifstream fd(Cdf); fd>>n; int c= 0; int A[n]; // priskiriu N reikšmę masyvui. int B[c]; // indeksam gauti. for(int i = 0; i < n; i++) { fd >> A[i]; // nusiskaitau iš failo duomenys. if(A[i] % 2 != 0) { c++; // B masyvo inddeksas B[c] = i; // priskiriu nelyginių sk indeksus masyvui B; } } for(int i = 0; i < c; i++) { for(int j = B[0]; j<n-1; j++) { A[j] = A[j+1]; // keičiu vietomis riekšmes. } n--; // atimu ilgi. } for(int i = 0; i < n; i++) { cout<<A[i]; } fd.close(); return 0; }
-
nu tai nusiskaitai iš failo duomenys , tada darai funkcija kuri skaičiuoja kiek prireiks konteinerių. kitą funkcija padarysi kiek bus pilnų konteinerių ten
pvz if sum % 2 ==0 sk++ ir panašiai.
-
Kodą įmesk savo. Niekas už tave nedarys gi visko :)
-
-
Sveiki, Gal būt net ne taip darau, bet nelabai aiški man šita tema. turiu kiek suprantu surast indeksą. užduotis:
http://www.part.lt/img/9ab312a7c22f3e8be7849e53c51288b214.png
kodas kurį padariau spausdina 3 9 9 9 3 9 9 9 3 9 9 9.
const int cmax = 20; int main() { int A[cmax] = {3,7,19}; int B[cmax] = {4,9,21,14,133}; int sk = 0; for(int i = 0; i < 3; i++) { for(int j = 0; j < 5; j++) { if(B[j] % A[i] == 0) { sk = A[i+1]; A[i+1] = A[i]; A[i] = sk; A[i] = B[j]; } cout<<A[i]<<" "; } } return 0; }
-
Na vektorių dar neėjau. Darau su masyvais, nes Masyvų temoj šitas uždavinys. Tik va, kad niekaip nesuprantu kaip surast tą indeksą.. ir įkelti skaičių į kitą masyvą :)
-
Sveiki, taigi susidūriau su problema. Turiu užduotį:
http://www.part.lt/img/3383e3bd877d7d31ef0f71c47ceeb1c4640.png.
Problema tokia, kad nelabai susigaudau, kaip ten su tais indeksais yra masyve ir kaip pridėt skaičių ar pradžioj ar pabaigoj. Jei kas galit paaiškinkit kaip ten su tais indeksų ieškojimais ir skaičiaus pridėjimais.
Kodo mėginimas:
#include <iostream> #include <stdlib.h> #include <fstream> #include <cmath> #include <iomanip> using namespace std; const char Cdf[] = "mokiniai.txt"; const char Cfd[] = "rez.txt"; const char cdfs[] = "ugiai.txt"; const int Cmax = 100; void skaityti(int A[],int B[], int &n, int &m) { ifstream fd(Cdf); ifstream fd1(cdfs); fd>>n; for(int i = 0; i < n ; i++) { fd>>A[i]; } fd1>>m; for(int i = 0; i < m; i++) { fd1>>B[i]; } fd.close(); fd1.close(); } void Spausdinti(int A[],int B[], int n,int m) { ofstream fs(Cfd); fs<<"Sudetos monetos :"<<endl; for(int i = 0; i < n; i++) { fs<<A[i]<<" "; } fs<<endl; fs<<"NEsudetos monetos :"<<endl; for(int i = 0 ; i < m; i++) { fs<<B[i]<<" "; } fs<<endl; fs<<"------------------"<<endl; fs.close(); } int Indeksas(int A[], int B[],int n, int m) { for(int i = 0; i < n+ m;i++) { if(A[i] == B[i]) { return i; } } return -1; } int main() { int A[Cmax]; int B[Cmax]; int n,m; int ind; ofstream fs(Cfd, ios::app); skaityti(A,B,n,m); Spausdinti(A,B,n,m); ind = Indeksas(A,B,n,m); fs.close(); return 0; }
-
tuoj pamėginsiu.
Thanks.
-
Sveiki, taigi turiu zebra internetą. Nuėjau į 192.168.1.254. ten viską surašiau nuėjau į internet connection ir mėginau pakeist passwordą, bet kai paspaudžių ok man rašo DRG A125G reikės tipo persikraut spaudžiu ok. ir tada dingo man WIFI, o ant pc rašo tipo: Šiame kompiuteryje įrašyti tinklo parametrai neatitinka tinklo reikalavimų.
ir prie WIFI ID rodo raudoną X. Mėginau visaip, bet veikia tik kai būna be užrakto, gal kas žino kas gali būt ?
-
Head fist išvis apskritai yra vienos geriausiu mokymuisi knygų ( bent aš taip manau) tikrai nesuklydai :)
-
http://gabija.simnet.lt/it/programav11-12.pdf
Va gali pasimokyt :)
Skaičiaus apvalinimas kol dalinsis iš 24
Programuotojų kampas
Atrašyta
šiaip manau galėtum daryti su while ciklu.
sukti ciklą kol tavo skaičius nelygus 0 ir cikle atiminėt po vieną dėmenį. nors negaliu garantuot, kad tai būtų geras sprendimas :)