Δημοσιεύτηκε: 24 Ιούλ 2011, 21:32
από stamatiou
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!


Τι γίνετε;Επίσης γιατί το πρόγραμμα συμπεριφέρεται πάρα πολύ παράξενα όταν εισάγω ελληνικούς χαρακτήρες;

Από τι ξέρω το ! απλά αντιστρέφει αυτό που επιστρέφει αυτό που ακολουθεί. Γιαυτό το λόγο για προσπάθησε να το κάνεις αντί για == σε != και να βγάλεις το ! πριν την παρένθεση