Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

θέλω να φτιάξω ένα πρόγραμμα το οποίο θα δέχεται ως είσοδο μια ακολουθία από χαρακτήρες διάφορους του Z και μέχρι 300.

θα γίνεται με την χρήση συνάρτησης η οποία θα παίρνει σαν όρισμα τον πίνακα με την ακολουθία χαρακτήρων και θα εξετάζει τα παραπάνω και στη συνέχεια θα επιστρέφει 0 αν τα στοιχεία είναι λιγότερα από 300 και χωρίς z ή 1 αν τα στοιχεία είναι περισσότερα από 300 ή υπάρχει έστω και ένα z.

Δημοσ. (επεξεργασμένο)

Έχω κάνει δουλειά απλά δεν μπορώ να το κάνω να δουλέψει με συνάρτηση!!!!

 

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

 

main()

{

 

int i=0,stoixeia=0,plithosZ=0;

char akolouthia[11]={0};

 

printf("dwse mia prwteiniki akolouthia me mikos to poli 10 xaraktires\n");

scanf("%s",akolouthia);

while( akolouthia[stoixeia]!='\0' )

{

stoixeia=stoixeia+1;

}

for(i=0;i<=stoixeia;i++)

{

if (akolouthia=='z')

plithosZ=plithosZ+1;

}

if(stoixeia>300 || plithosZ>0)

{

printf("I AKOLOUTHIA EXEI MESA Z I EXEI PANW APO 300.KSANAPROSPATHISTE\n");

}

else

{

 

}

 

 

system("pause");

}

Επεξ/σία από vkefalas
Δημοσ.

Στο δίνω golfed, αν μπορέσεις να το καταλάβεις χαλάλι σου ;)

 

>
#include <stdio.h>
int read(char *s) {
char *p=s;int z=0;
for(;(*p=getchar())!=0&&*p!=10&&p-s<301;z+=*p==122?1:0,p++);*p=0;
return z!=0;
}
int main (void ) {
char s[301];
printf("%d\n", read(s));
return 0;
}

Καλά Χριστούγεννα σε όλους!

Δημοσ. (επεξεργασμένο)

Εγώ το έχω κάνει έτσι αλλά δεν μου το τρέχει το DEV!!!!!Τι είναι λάθος??

 

 

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int sinartisi (char akolouthia);

main()

{

 

int i,stoixeia,k;

char akolouthia[11]={0};

 

printf("dwse mia prwteiniki akolouthia me mikos to poli 10 xaraktires\n");

scanf("%s",akolouthia);

k=sinartisi (*akolouthia) ;

 

system("pause");

}

 

 

 

 

int sinartisi (char akolouthia[])

{

int stoixeiaAkolouthias=0,i;

while( akolouthia[stoixeiaAkolouthias]!='\0' )

{

stoixeiaAkolouthias=stoixeiaAkolouthias+1;

}

printf("ta stoixeia einai %d \n",stoixeiaAkolouthias);

int plithosZ=0;

for(i=0;i<=stoixeiaAkolouthias;i++)

{

if (akolouthia=='z')

plithosZ=plithosZ+1;

}

if (stoixeiaAkolouthias>300 || plithosZ>0)

return 0;

else

return 1;

}

Επεξ/σία από vkefalas
Δημοσ.

EGW TO EXW KANEI ETSI ALLA DEN MOU TREXEI STO DEV!!!!!TI EINAI LATHOS??

 

 

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

 

int sinartisi (char akolouthia);

 

Πρωτο λάθος, όταν γράφουμε το πρωτότυπο της Συνάρτησης στην οποιά περνάς ΠΙΝΑΚΑ πρέπει να υπάρχουν τα "[]" το όνομα δεν είναι απαραίτητο πχ:

 

int sinartisi (char []);

 

int main(void)

{

 

int i,stoixeia,k;

char akolouthia[11]={0};

 

printf("dwse mia prwteiniki akolouthia me mikos to poli 10 xaraktires\n");

scanf("%s",akolouthia);

k=sinartisi (*akolouthia) ;

 

system("pause");

}

 

 

Το i kai to stoixia δε το έχεις χρησιμοποιήσει πουθενα στη main, οπότε δε χρειάζεται, πιθανώς σου πετάει warning..

όταν περνάς έναν πίνακα σε μια συνάρτηση μέσα στη main αρκεί το sinartisi(akolouthia);

 

Επίσης το system ("pause") δεν είναι πολύ καλό να το χρησιμοποιείς..Στο τέλος μπορείς να βάλεις ένα return (getchar()); για να μη σου κλείνει το παράθυρο!

 

 

int sinartisi (char akolouthia[])

{

int stoixeiaAkolouthias=0,i;

while( akolouthia[stoixeiaAkolouthias]!='\0' )

{

stoixeiaAkolouthias=stoixeiaAkolouthias+1;

}

printf("ta stoixeia einai %d \n",stoixeiaAkolouthias);

int plithosZ=0;

for(i=0;i<=stoixeiaAkolouthias;i++)

{

if (akolouthia=='z')

plithosZ=plithosZ+1;

}

if (stoixeiaAkolouthias>300 || plithosZ>0)

return 0;

else

return 1;

}

 

Μετά μπορεί να σε βγάζει σφάλμα στο int plithosZ=0; γιατί δεν επιτρέπει ο devC να γίνεται κώδικας και δηλώσεις μαζί, πρέπει να δηλωθεί πάνω πάνω η μεταβλητή..

 

Επίσης ο κώδικας σου είναι πολύ δυσανάγνωστος για να διορθωθεί.. γράφετε με tabs :S

  • Super Moderators
Δημοσ.

@vkefalas: Απαγορεύονται τα greeklish! Έχεις περιθώριο μέχρι αύριο στις 12.00 το μεσημέρι να τροποποιήσεις τα δύο (2) μηνύματά σου και να αντικαταστήσεις τα greeklish με ελληνικούς χαρακτήρες.

 

Μετά την ανωτέρω προθεσμία, τα μηνύματά σου θα διαγραφούν μαζί με τις όποιες απαντήσεις σε αυτά.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...