migf1 έγραψε: s[j + 1] = s[i];
Δεν καταλαβαίνω τι ακριβώς κάνει το s[j + 1] = s[i]. Και στην δεύτερη άσσκηση δεν καταλαβαίνω όχι την εκφώνηση αλλά το πώς θα την υλοποιήσω.
Συντονιστής: konnn
migf1 έγραψε: s[j + 1] = s[i];

stamatiou έγραψε:Δεν καταλαβαίνω τι ακριβώς κάνει το s[j + 1] = s[i].
έγραψε:Και στην δεύτερη άσσκηση δεν καταλαβαίνω όχι την εκφώνηση αλλά το πώς θα την υλοποιήσω.

/*Άσκηση:
* Να γραφεί συνάρτηση η οποία να εμφανίζει στην οθόνη ένα πλαίσιο το οποίο θα δημιουργείται
από έναν χαρακτήρα και θα έχει συγκεκριμένο πλάτος (σε χαρακτήρες) και ύψος (σε
γραμμές). Το ύψος, το πλάτος και ο χαρακτήρας θα μεταβιβάζονται ως παράμετροι στη
συνάρτηση. Η συνάρτηση θα πρέπει να έχει μια επί πλέον παράμετρο η οποία στη περί-
πτωση που έχει τιμή 1 το πλαίσιο θα είναι γεμάτο με τον χαρακτήρα και στη περίπτωση
που έχει τιμή 0 θα εμφανίζεται μόνο το περίγραμμα. Επίσης, να γράψετε ένα πρόγραμμα
το οποίο να καλεί τη συγκεκριμένη συνάρτηση.
*/
#include <stdio.h>
#include <stdlib.h> /* Για exit() */
void display(char ch,int height,int width,int fill);
main()
{
int ipsos,platos,gemisma;
char xarakthras;
printf("Δώσε χαρακτήρα: ");
scanf("%c",&xarakthras);
printf("Δώσε το ύψος: ");
scanf("%d",&ipsos);
printf("Δώσε το πλάτος: ");
scanf("%d",&platos);
printf("Δώσε το γέμισμα <0 ή 1>: ");
scanf("%d",&gemisma);
display(xarakthras,ipsos,platos,gemisma);
exit(0);
}
void display(char ch,int height,int width,int fill)
{
int i,j,d;
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
for(i=1;i<=width;++i)
{
printf("%c",ch);
}
putchar('\n');
for(d=1;d<=height;++d)
{
printf("%c",ch);
for(j=1;j<=(width-2);++j)
{
if(fill==1)
printf("%c",ch);
else if(fill==0)
printf(" ");
}
printf("%c",ch);
putchar('\n');
}
for(i=1;i<=width;++i)
{
printf("%c",ch);
}
putchar('\n');
}
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}if(!(fill == 1) || !(fill == 0))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!
Qdata έγραψε:
- Κώδικας: Επιλογή όλων
/*Άσκηση:
* Να γραφεί συνάρτηση η οποία να εμφανίζει στην οθόνη ένα πλαίσιο το οποίο θα δημιουργείται
από έναν χαρακτήρα και θα έχει συγκεκριμένο πλάτος (σε χαρακτήρες) και ύψος (σε
γραμμές). Το ύψος, το πλάτος και ο χαρακτήρας θα μεταβιβάζονται ως παράμετροι στη
συνάρτηση. Η συνάρτηση θα πρέπει να έχει μια επί πλέον παράμετρο η οποία στη περί-
πτωση που έχει τιμή 1 το πλαίσιο θα είναι γεμάτο με τον χαρακτήρα και στη περίπτωση
που έχει τιμή 0 θα εμφανίζεται μόνο το περίγραμμα. Επίσης, να γράψετε ένα πρόγραμμα
το οποίο να καλεί τη συγκεκριμένη συνάρτηση.
*/
#include <stdio.h>
#include <stdlib.h> /* Για exit() */
void display(char ch,int height,int width,int fill);
main()
{
int ipsos,platos,gemisma;
char xarakthras;
printf("Δώσε χαρακτήρα: ");
scanf("%c",&xarakthras);
printf("Δώσε το ύψος: ");
scanf("%d",&ipsos);
printf("Δώσε το πλάτος: ");
scanf("%d",&platos);
printf("Δώσε το γέμισμα <0 ή 1>: ");
scanf("%d",&gemisma);
display(xarakthras,ipsos,platos,gemisma);
exit(0);
}
void display(char ch,int height,int width,int fill)
{
int i,j,d;
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
for(i=1;i<=width;++i)
{
printf("%c",ch);
}
putchar('\n');
for(d=1;d<=height;++d)
{
printf("%c",ch);
for(j=1;j<=(width-2);++j)
{
if(fill==1)
printf("%c",ch);
else if(fill==0)
printf(" ");
}
printf("%c",ch);
putchar('\n');
}
for(i=1;i<=width;++i)
{
printf("%c",ch);
}
putchar('\n');
}
Στο πρόγραμμα αυτό αν αντικαταστήσω το:
- Κώδικας: Επιλογή όλων
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
με:
- Κώδικας: Επιλογή όλων
if(!(fill == 1) || !(fill == 0))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
Μου βγάζει συνέχεια(είτε πατήσω 0 ή 1 είτε πατήσω άλλο αριθμό):
- Κώδικας: Επιλογή όλων
Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!
Τι γίνετε;Επίσης γιατί το πρόγραμμα συμπεριφέρεται πάρα πολύ παράξενα όταν εισάγω ελληνικούς χαρακτήρες;

stamatiou έγραψε:Από τι ξέρω το ! απλά αντιστρέφει αυτό που επιστρέφει αυτό που ακολουθεί. Γιαυτό το λόγο για προσπάθησε να το κάνεις αντί για == σε != και να βγάλεις το ! πριν την παρένθεση
if(fill != 1) || fill != 0)
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}if(!(fill == 1) || !(fill == 0))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}if((!(fill == 1)) || (!(fill == 0)))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
Qdata έγραψε:stamatiou έγραψε:Από τι ξέρω το ! απλά αντιστρέφει αυτό που επιστρέφει αυτό που ακολουθεί. Γιαυτό το λόγο για προσπάθησε να το κάνεις αντί για == σε != και να βγάλεις το ! πριν την παρένθεση
Έχω δοκιμάσει ήδη:
- Κώδικας: Επιλογή όλων
if(fill != 1) || fill != 0)
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
- Κώδικας: Επιλογή όλων
if(!(fill == 1) || !(fill == 0))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
- Κώδικας: Επιλογή όλων
if((!(fill == 1)) || (!(fill == 0)))
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
Τίποτα όμως!

stamatiou έγραψε:Ίσως αν βάλεις αντί για 1 '1';


stamatiou έγραψε:Εμένα μου τρέχει μια χαρά με το cc... :/
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}ΑΝ(η fill είναι ίση με 1 ή η fill είναι ίση με 0) ΤΌΤΕ ΤΊΠΟΤΑ(πάμε στην επόμενη εντολή)
ΑΛΛΙΏΣ τύπωσε "Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!" και κλείσε το πρόγραμμα.ΑΝ(η fill ΔΕΝ είναι ίση με 0 ή 1) ΤΌΤΕ τύπωσε "Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!" και κλείσε το πρόγραμμα.
Qdata έγραψε:stamatiou έγραψε:Εμένα μου τρέχει μια χαρά με το cc... :/
Και εμένα αλλά εγώ αναγκάστηκα να βάλω:
- Κώδικας: Επιλογή όλων
if(fill == 1 || fill == 0);
else
{
printf("Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!\n");
exit(0);
}
Δηλαδή να αφήσω το if κενό.Είναι σαν να λέω:
- Κώδικας: Επιλογή όλων
ΑΝ(η fill είναι ίση με 1 ή η fill είναι ίση με 0) ΤΌΤΕ ΤΊΠΟΤΑ(πάμε στην επόμενη εντολή)
ΑΛΛΙΏΣ τύπωσε "Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!" και κλείσε το πρόγραμμα.
Εγώ θέλω να πω:
- Κώδικας: Επιλογή όλων
ΑΝ(η fill δεν είναι ίση με 0 ή 1) ΤΌΤΕ τύπωσε "Η τιμή του γεμίσματος πρέπει να είναι μια επιλογή μεταξύ 0 και 1!" και κλείσε το πρόγραμμα.
