Συντονιστής: konnn

migf1 έγραψε:Έβαλες το '\0' στο τέλος της αρχικοποίησης του s στην is_vowel?




migf1 έγραψε:Για το αραίωμα του κώδικα, παραθέτω πως αραίωσα τον τελευταίο σου για να δω τι κάνει. Βέβαια εκτός από το αραίωμα έκανα και καμιά 100αριά ακόμα αλλαγέςΒασικά έτσι όπως τον έκανα κάνει ακριβώς ότι και ο δικός σου, αλλά άλλαξα ονόματα μεταβλητών, σου έβαλα εναλλακτικές υλοποιήσεις του δικού σου κώδικα (αφήνοντας μέσα σε /*** ... ***/ τις δικές σου υλοποιήσεις) κι έβαλα σχόλια που εξηγούν τι κάνει ο κώδικάς σου. Ειδικά στη main() τα σχόλια ελπίζω να σε βοηθήσουν να καταλάβεις γιατί δεν δουλεύει σωστά το πρόγραμμά σου (είναι αλγοριθμικά εσφαλμένο).
Spoiler: show
Για την εικόνα, πρέπει να αραιώσω ξανά τον κώδικα που της αντιστοιχεί και κυρίως να βρω σε ποιον από όλους τους κώδικες που έχεις ποστάρει αντιστοιχεί


migf1 έγραψε:Δηλαδή σε αυτόν που πόσταρα πριν από 1 λεπτό;
ΥΓ. Έκανα edit την ώρα που απαντούσες στο παραπάνω ποστ (απλά πρόσθεσα κάποιες κοινές ονομασίες μεταβλητών, κάτω από το spoiler του κώδικα).
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int is_vowel(char c) {
int i;
char s[] = {'a','A','E','e','I','i','o','O','U','u','Y','y','\0'};
for(i = 0;i<12;i++) {
if(c == s[i]) {
return 0;
}
}
return 1;
}
int is_consonant(char c) {
int i;
char s[] = {'b','B','c','C','d','D','f','F','g','G','h','H','j','J','k','K','l','L','m','M','n','N','p','P','q','Q','r','R','s','S','t','T','v','V','w','W','x','X','z','Z','\0'};
for(i = 0;i<40;i++) {
if(c == s[i]) {
return 0;
}
}
return 1;
}
int main(void) {
int i,i2 = 0,i3 = 0,i4 = 0,len;
char inbuf[256];
char vowel[255];
char consonant[255];
char other[255];
fgets(inbuf,256,stdin);
len = strlen(inbuf);
for(i=0;i<len;i++) {
if(is_consonant(inbuf[i]) == 0) {
consonant[i2++] = inbuf[i];
}else if(is_vowel(inbuf[i]) == 0) {
vowel[i3++] = inbuf[i];
}else {
if(inbuf[i] > 31 && inbuf[i] <= 64) {
other[i4++] = inbuf[i];
}
}
}
for(i=0;i<strlen(inbuf);i++) inbuf[i] = 0;
strcat(inbuf,vowel);
strcat(inbuf,other);
strcat(inbuf,consonant);
for(i=0;i<strlen(inbuf);i++) printf("%c",inbuf[i]);
putchar('\n');
return 0;
}

