Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problemi con variabili char (linguaggio C)

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[11] Re: Problemi con variabili char (linguaggio C)

Messaggioda Foto UtenteLuigi97 » 5 ago 2017, 23:37

Comunque, riferendomi al primo programma, per far ripetere la visualizzazione dei caratteri per un numero di volte desiderato dall'utente anziché complicarsi la vita con l'if si può utilizzare il ciclo while... il 99% di chi legge probabilmente già lo sa, ma io me ne sono accorto solo adesso perché, ripetendo tutti gli esercizi fatti fino ad ora, mi son trovato a ripetere anche l'esercizio in questione e rifacendolo ho capito che c'è una soluzione più semplice:
Codice: Seleziona tutto
#include <stdio.h>

/*permettere all'utente di comporre un rettangolo o un quadrato, di decidere i caratteri che devono comporre la
cornice e la parte interna, e permettere anche di decidere quante volte deve essere ripetuta la visualizzazione
del rettangolo o del quadrato*/

int main(void) {
int x, y, z, numero_righe, numero_colonne, volte;
char carattere_interno=EOF;
char carattere_cornice=EOF;

printf("Crea un rettangolo o un quadrato\n\n");

printf("Inserisci il numero di colonne: ");
scanf("%d", &numero_colonne);
printf("Inserisci il numero di righe: ");
scanf("%d", &numero_righe);
if(numero_colonne!=numero_righe) {
printf("\nIl rettangolo conterra' una parte interna e una cornice.\n");
}else {
printf("\nIl quadrato conterra' una parte interna e una cornice.\n");   
}
printf("Inserisci il carattere interno: ");
do {
scanf("%c", &carattere_interno);
}while(carattere_interno=='\n' || carattere_interno==EOF);
printf("Inserisci il carattere della cornice: ");
do {
scanf("%c", &carattere_cornice);
}while(carattere_cornice=='\n' || carattere_cornice==EOF);

printf("\n");

do {
if(numero_colonne!=numero_righe) {
printf("Inserisci il numero di volte che vuoi visualizzare il rettangolo: ");
}else {
printf("Inserisci il numero di volte che vuoi visualizzare il quadrato: ");   
}
scanf("%d", &volte);
}while(volte<0);

printf("\n");

/*visualizzazione del rettangolo o del quadrato per il numero di volte desiderato*/
while(volte!=0) {

for(x=0; x<numero_colonne+2; x++) {
printf("%c ", carattere_cornice);   
}

for(x=0; x<numero_righe; x++) {
printf("\n%c ", carattere_cornice);
for(y=0; y<numero_colonne; y++)
printf("%c ", carattere_interno);
for(z=0; z<1; z++)
printf("%c", carattere_cornice);         
}

printf("\n");

for(x=0; x<numero_colonne+2; x++) {
printf("%c ", carattere_cornice);      
}

volte--;

printf("\n\n");

}


    return 0;
}

In pratica il ciclo while comprende tutti i cicli for, di conseguenza i cicli for verranno eseguiti solo se verrà eseguito il ciclo while. Il ciclo while verrà eseguito fintantoché "volte!=0". L'utente inserisce il valore della variabile "volte", se è maggiore di 0, questa ad ogni ciclo while verrà decrementata di 1 e, quando diventerà 0, si interromperà il ciclo while.
Avatar utente
Foto UtenteLuigi97
40 4
 
Messaggi: 49
Iscritto il: 17 giu 2017, 16:35

Precedente

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti