Results 1 to 6 of 6
Thread: Ïðîáëåì ñúñ string
Hybrid View
-
3rd December 2013 20:08 #1
Ïðîáëåì ñúñ string
Çäðàâåéòå. Òîâà å ÷àñò îò ïðîãðàìà (ñòðóêòóðà çà òóðèñòè÷åñêà ôèðìà), êúäåòî òðÿáâà äà ñå èçêàðà èìåòî íà íàé-âúçðàñòíèÿ òóðèñò. Ñðàâíÿâàì ãîäèíèòå, íî íå ìîãà äà èçêàðàì èìåòî íà íàé-âúçðàñòíèÿ òóðèñò.
Åòî êîäà:
Ïîëçâàì Dev C++, ïîíåæå èìàì ïðîáëåìè ñ Code Blocks. Èìà íÿêàêâà ãðåøêà â óñëîâèåòî, äîáàâèõ è "else nmp=tourists[0].names;", íî ðàáîòè ñàìî àêî ñå âúâåäàò äâàìà òóðèñòè.Code:#include <iostream> using namespace std; struct Tourist { char names[50]; int age; }; int main() { Tourist tourists[30]; int n; cout<<"Enter number of tourists: "; cin>>n; cout<<endl; int i; for(i=0;i<n;i++) { cout<<"Enter three names: "; cin>>tourists[i].names; cout<<"Enter age: "; cin>>tourists[i].age; cout<<endl; } int max=tourists[0].age; string nmp; for(i=0;i<n;i++) { if(tourists[i].age>max) { max=tourists[i].age; nmp=tourists[i].names; } } cout<<"The oldest person is: "<<nmp; cout<<endl; system("pause>nul"); return 0; }ASRock B450M Pro4 / 5700X@4.5GHz / MSI RX 6600 XT Mech 2X / be quiet! Dark Rock 4 / 2x16GB FlareX 3200MHz CL16 / FSP Hydro G Pro 1000W / Samsung Odyssey G5 S27AG50
-
3rd December 2013 20:15 #2
Âìåñòî nmp, ìîæå äà ïàçèø ñàìî èíäåêñà íà íàé-äúðòèÿ.
Ïî-ìàëêî ïàìåò, à è ñè çàîáèêàëÿø ïðîáëåìà ñúñ string-a
Ïîñëåäíà ðåäàêöèÿ: èçâúðøåíà îò XaMaB; íà äíåøíà äàòà. 0.42 ñåêóíäè ñëåä ïóñêàíå íà ïîñòà
In God we Trust (all others must submit a X.509 certificate). Àêî ñïîðèø ñ èäèîò, âåðîÿòíî è òîé ïðàâè ñúùîòî èëè ñè ïîïàäíàë íà ïàðòèåí (íåïúëåí) ÷ëåí
-
3rd December 2013 21:44 #3Registered User
Join Date: Sep:2013
Location: Bulgaria
Posts: 59
Àç ñúì ñ VS 2013 Express è ïðè ìåí ðàáîòè äîíÿêúäå. Ñàìî ÷å òàì êúäåòî âúâåæäàø èìåíàòà ñè íàïèñàë "Enter three names: " è êàòî íàïèøà 3 èìåíà ðàçäåëåíè ñ èíòåðâàëè ñå ðàçâàëÿ ïðîãðàìàòà. Êîãàòî èçïîëçâàø cin, çíàé ÷å âúâåæäàø ñèìâîëè äîêàòî íå íàòèñíåø enter èëè space è òàêà êàòî âúâåäåø 3 èìåíà ðàçäåëåíè ñ èíòåðâàë ïðîãðàìàòà ñå îáúðêâà. Ìèñëÿ ÷å òîâà òè å ïðîáëåìà. Àç áèõ çàìåíèë char ìàñèâà ñ îáèêíîâåí string è áèõ âúâåæäàë ñ ôóíêöèÿòà getline.
Íåùî òàêîâà:
Ï.Ï.: Äà çíàåø ÷å àêî ïðåäè òàçè ôóíêöèÿ getline ñè íàòèñíàë Enter, òî â string-à òè äèðåêòíî ñå çàïèñâà "\n". Ïðèìåð:Code:struct Tourist { string names; int age; }; // .... int main() { // ..... getline(cin, names); //.... }
Code://... int n; string names; //... cin>>n; /* Òóê íàòèñêàø Enter çà äà âúâåäåø ñòîéíîñò, íî àêî íÿìàø ñëåäâàùèÿ ðåä, â names ñå çàïèñâà "\n" */ cin.ignore(1, '\n'); //ÎÊ. Â names íå ñå çàïèñâà "\n" getline(cin,names); //...
-
3rd December 2013 22:26 #4
Ïúðâîíà÷àëíî ãî áÿõ íàïðàâèë ñúñ cin.getline, íî ïîñëå ðåøèõ äà ãî ìàõíà è ñúì çàáðàâèë äà ïðîìåíÿ òåêñòà. Ùå ïðîáâàì ñúñ string äàëè ùå ñòàíå.
ASRock B450M Pro4 / 5700X@4.5GHz / MSI RX 6600 XT Mech 2X / be quiet! Dark Rock 4 / 2x16GB FlareX 3200MHz CL16 / FSP Hydro G Pro 1000W / Samsung Odyssey G5 S27AG50
-
4th December 2013 00:46 #5Registered User
Join Date: Dec:2007
Location: Sofia
Posts: 366
Àêî íàé-âúçðàñòíèÿò òóðèñò å ïúðâèÿ âúâåäåí, ñòðèíãà ùå ñè îñòàíå ïðàçåí (ïîíåæå íèêîãà íÿìà äà âëåçåø â 'if' áëîêà).
-
6th December 2013 22:17 #6
Àìè àêî èìà ïîâå÷å îò åäèí òóðèñò ñ max ãîäèíè, èçâåæäàìå ïúðâèÿ èëè ãè èçâåæäàìå âñè÷êèòå?
[edit] Äíåñ íàïðàâèõ íÿêîè ïðîìåíè â êîäà òàêà, ÷å äà íÿìà ãðåøêè îò âúâåæäàíåòî íà ïðåêàëåíîCode:#include <iostream> using namespace std; #define MAXT 30 #define MAXN 50 struct Tourist { char names[MAXN]; int age; }; int main() { Tourist tourists[MAXT]; int i, n, max=-1; do { cout<<"Enter number of tourists[1.."<<MAXT<<"]: "; cin>>n; cout<<endl; } while ((n<1)||(n>MAXT)); for(i=0;i<n;i++) { cout<<"Enter three names: "; cin.ignore(1, '\n'); cin.getline(tourists[i].names,999,'\n'); tourists[i].names[MAXN-1] = '\0'; cout<<"Enter age: "; cin>>tourists[i].age; cout<<endl; if (max<tourists[i].age) max = tourists[i].age; } cout<<"The oldest person(s) is: \n"; for (i=0;i<n;i++) if (tourists[i].age==max) cout<<tourists[i].names<<endl; system("pause>nul"); return 0; }
ãîëÿì áðîé òóðèñòè èëè ïúê ïðåêàëåíî äúëãè èìåíà.Last edited by ined; 7th December 2013 at 23:16.
ASRock B85 Pro4, Pentium G3240, DD3 8GB/1333MHz, 120GB SSD + 1TB + 640GB HDD
Gigabyte GV-R657OC-1GI, CM B500, ASUS 24B1S1, LCD SAMSUNG SM931BW, ÌÅ173Õ




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè