Jump to content

Recommended Posts

Posted

Καλησπέρα.Σήμερα έγραφα πρόοδο στο εργαστήριο προγραμματισμού και μου έπεσε η παρακάτω άσκηση : "Να γίνει πρόγραμμα που να διαβάζει μία ακολουθία χαρακτήρων(string) και να μετράει με χρήση συνάρτησης πόσες φορές εμφανίζεται μέσα στην ακολουθία ένας συγκεκριμένος χαρακτήρας".

 

Η λύση η οποία έδωσα εγώ πάνω κάτω(διόρθωσα μερικά πραγματάκια) είναι η εξής :

#include <stdio.h>
#include <stdlib.h>
int emfaniseis(char c);
int main()
{
    char st[30],c1;
    int n;
    printf("Dwse mia akolou8ia xaraktirwn: ");
    scanf("%s",st);
    printf("Dwse ton xaraktira pou 8es: ");
    scanf("%c",&c1);
    n=emfaniseis(c1);
    printf("O xaraktiras %c emfanizetai %d fores stin akolou8ia pou edwses",c1,n);
    system("PAUSE");
    return 0;
}
int emfaniseis(char c)
{int x=0,i,st[30];
for (i=1;i<=30;i++)
{    if (c==st)
         x++;      
}
return x;
}

Τα φώτα σας αν γίνεται.Ευχαριστώ εκ των προτέρων.

Posted

#include <iostream>

using namespace std;

char word[6][2] = {

"s","k","a","t","a"

};
int times = 0;

int main() {

  for (int x = 0; x<6; x++) {
  
    if (word[x] == "a") {

  times++;

}
  
  }
  
  cout << "I found the letter 'a' " << times << " times." << endl;

}

 

Εγραψα κατι προχειρο και απλο.

Posted

#include <iostream>

using namespace std;

char word[6][2] = {

"s","k","a","t","a"

};
int times = 0;

int main() {

  for (int x = 0; x<6; x++) {
  
    if (word[x] == "a") {

  times++;

}
  
  }
  
  cout << "I found the letter 'a' " << times << " times." << endl;

}

 

Εγραψα κατι προχειρο και απλο.

Χμ αν εξαιρέσουμε ότι ο δικός σου κώδικας είναι σε C++ κάνει το ίδιο πράγμα με τον δικό μου αλλά είναι με χρήση συνάρτησης.Ευχαριστώ όπως και να χει ρε!

Posted

Χμ αν εξαιρέσουμε ότι ο δικός σου κώδικας είναι σε C++ κάνει το ίδιο πράγμα με τον δικό μου αλλά είναι με χρήση συνάρτησης.Ευχαριστώ όπως και να χει ρε!

Επισης εκανα και ενα μικρο λαθος.

 

Ετσι επρεπε να ειναι.

char word[6][2] = {

"s","k","a","t","a"

};

Posted

Δεδομένου ότι τη συγκεκριμένη άσκηση δε την έγραψε σχεδόν κανείς θα έχω πάρει κανένα 8.

Posted

Δεδομένου ότι τη συγκεκριμένη άσκηση δε την έγραψε σχεδόν κανείς θα έχω πάρει κανένα 8.

Περιφανος!
Posted

Περιφανος!

Μια χαρά ήταν!Να γράψω άλλο τόσο και στις 5 Ιουνίου στη τελική εξέταση και πέρασα και με άριστο βαθμό ;p

Posted

Μια χαρά ήταν!Να γράψω άλλο τόσο και στις 5 Ιουνίου στη τελική εξέταση και πέρασα και με άριστο βαθμό ;p

Σε ΙΕΚ είσαι;

Posted

Δεδομένου ότι διαβάζεις ένα string πρέπει να το αποθηκεύεις κάπου. Τώρα το πως θα βρει το πόσες φορές εμφανίζεται ένας χαρακτήρας στο String αυτό είναι καθαρά δικιά σου επιλογή από την άποψη αν θα είναι συνάρτηση ή κώδικας μέσα στη main. Η εκδοχή που έδωσες κατ' εμέ είναι καθαρά καλύτερη δεδομένου ότι η χρησιμοποίηση των συναρτήσεων επιτρέπει καλύτερη εξέταση του κώδικα (debugging) και συμβασιμότητα με άλλα προγράμματα. Όμως...

 

Κάτι το οποίο δεν αναφέρθηκε είναι:

 

int main()
{
    char st[30],c1;
    int n;
    printf("Dwse mia akolou8ia xaraktirwn: ");
    scanf("%s",st);
    printf("Dwse ton xaraktira pou 8es: ");
    scanf("%c",&c1);
    n=emfaniseis(c1);
    printf("O xaraktiras %c emfanizetai %d fores stin akolou8ia pou edwses",c1,n);
    system("PAUSE");
    return 0;
}

 

Αυτός είναι ο κώδικας της main σου και το string δηλωμένο τοπικά στην συνάρτηση αυτή (st). Τώρα η συνάρτηση που έγραψες είναι αυτή:

 

int emfaniseis(char c)
{int x=0,i,st[30];
for (i=1;i<=30;i++)
{    if (c==st)
         x++;      
}
return x;
}

 

που εδώ ξαναδηλώνεις το string st εκ νέου μέσα στη συνάρτηση ως τοπική μεταβλητή (και μάλιστα ως int o.O) πάλι (κοινώς δεν έχει καμία σχέση με το άλλο από πάνω).

 

Το πρόγραμμα δεν θα δουλέψει και ίσως πετάξει segmentation fault δεδομένης της σύγκρισης του χαρακτήρα με το '/0' που είναι στα κελιά του κενού πίνακα χαρακτήρων st[30] μέσα στη συνάρτηση.

 

2 ΛΥΣΕΙΣ:

 

- 1η είναι να περνάς σαν παράμετρο το st από τη main στη συνάρτηση (βάζοντας άλλο ένα όρισμα στη δήλωση της emfaniseis (π.χ emfaniseis(char c, char str[30]);) ή

- 2η είναι να κάνεις τη μεταβλητή char st[30] global (πάνω από τη main).

 

Σε γενικές γραμμές ο τρόπος που ακολούθησες για να κάνεις ότι σου είπαν είναι κομπλέ, απλά θα πρέπει να δεις τι θα σου κόψει από αυτό που σου 'πα...

 

GL ;)

 

Posted

Α μαλακία Νάσο από βιασύνη ήταν η δήλωση του πίνακα στη συνάρτηση.Στην πρόοδο δε το χα κάνει αυτό, το μόνο λάθος ήταν ότι μπερδεύτηκα στο όρισμα της συνάρτησης και αντί να βάλω το string έβαλα τον χαρακτήρα ;p

 

10 μου έβαλε όμως.

 

Επίσης σχετικά με αυτό που λες πλέον χρησιμοποιώ άλλο τρόπο για τα string.Πρώτα με μία while βρίσκω το μέγεθος του string και μετά κάνω αυτή την if.

Posted

Α μαλακία Νάσο από βιασύνη ήταν η δήλωση του πίνακα στη συνάρτηση.Στην πρόοδο δε το χα κάνει αυτό, το μόνο λάθος ήταν ότι μπερδεύτηκα στο όρισμα της συνάρτησης και αντί να βάλω το string έβαλα τον χαρακτήρα ;p

 

10 μου έβαλε όμως.

 

Ε στ' @@ σου τότε :D (θέλει και τον char c και το string αλλά παίζει να μην το δε και να μέτρησε τον τρόπο που το 'κανες και ήταν πένα! ;-) )

 

Επίσης σχετικά με αυτό που λες πλέον χρησιμοποιώ άλλο τρόπο για τα string.Πρώτα με μία while βρίσκω το μέγεθος του string και μετά κάνω αυτή την if.

 

Μπορείς να χρησιμοποιείς την int strlen(char *str) που επιστρέφει το μήκος του string για να μην παιδεύεσαι. Κάτι σαν:

 

for (int i = 0; i < strlen(str); i++) {
     /* do whatevah here */
}

 

;-)

Guest
This topic is now closed to further replies.


  • Posts

    • NEW SEASON 2025     GRAND OPENING 31.01.2025 Dear players, we would like present you the new season of the L2Exoplanet server. The new server will be rate x10 with alot new updates & fixes. We promise you the best High Five server with big community and balanced economy. Our project consists team of enthusiasts who love Lineage 2 and we would like invite to this iconic game.     GRAND OPENING:  31.01.2025 at 20:00 GMT+1 BETA TEST:   24.01.2025    Client: High Five Rates: x10   Website: https://l2exoplanet.net Facebook: https://www.facebook.com/L2-Exoplanet-106811564103836 Discord: https://discord.gg/4fzhW7ZSPc      
    • NEW SEASON START 31.1.2025       GRAND OPENING:  31.01.2025 at 20:00 GMT+1 BETA TEST:   24.01.2025    Client: High Five Rates: x10   Website: https://l2exoplanet.net Facebook: https://www.facebook.com/L2-Exoplanet-106811564103836 Discord: https://discord.gg/4fzhW7ZSPc       Game Rates    Experience: x10  Skill Points: x10  Adena: x8  Drop: x8  Spoil: x8  Quest: x5  Raid Boss Drop: x5  Fame: x2  Epaulette: x8  Manor: x8  MW Craft Chance: 6%  Key-Matherial-Recepie: x16    Safe Enchant: +3  Maximum Enchant: +16  Normal Scroll Chance: 60%  Blessed Scroll Chance: 63%  Attribute Stone Chance: 50%  Attribute Crystal Chance: 30%      Game Settings    Multibox - 3 game clients per HWID  Autoloot  Autolearn Skills  NPC Buffer  Buff Slots (24+4/12)  Buff Duration (2h)  Olympiad Period 7days (new heroes appear every monday)  Seven Signs Period  Class Transfer for Adena  Max Sub-Class 3  Sub-Class Max Level 85  Essence Interface  Champions System  Vote Reward System  Dayli Reward System  PC Points Reward (500PC = 1 Donate Coin)      Epic Bosses Respawn Times     Queen Ant:  24 Hours +/- 4 Hours   Beleth: 2 Days +/- 8 Hours   Baium: 2 Days +/- 8 Hours   Antharas: 3 Days +/- 8 Hours   Valakas:  3 Days +/- 8 Hours     Instance Info     Normal Freya = 6 Players   Hard Freya = 12 Players   Frintezza = 6 Players   Zaken 83 Day = 6 Players   Zaken 60 Day = 6 Players   Zaken Nightly = 6 Players   Tiat = 6 Players   Beleth = 12 Players
    • i think u need edit server files side too... bcs for interlude missing cmd for this set
    • Hi. I'm trying to rewrite the Lineage 2 interlude interface so that the screen displays information that, for example, the “Curse Gloom” debuff has entered and that it displays what skill has been resisted (there is only general information). Is it possible to do this?
    • OPENING ON MARCH 21 AT 18:00 GMT+1 Airin Server — a journey from the classic Chronicle 1 to the epic Chronicle 5, followed by a world merge with the Teon server. We are creating a unique gaming experience where each era unfolds gradually. From your first steps to battles with epic bosses, from the importance of every equipment grade to the significance of every location. Progressive Chronicles — your journey through history. Limits: 1 client per person Rates: Epic drop chance: x1 Quest drop chance: x1 Raid drop chance: x2 Adena (dynamic): x3~ (x1 for high-level) EXP\SP: x2-x3 Drop chance: x2-x3 Spoil chance: x2-x3 Quests A-grade: x1-x3 Quests S-grade: x1-x2 Welcome to Elmorelab.com!
  • Topics

×
×
  • Create New...