U
Utente 125751
Ospite
Salve :)
Ho degli esercizi in C che devo svolgere.
1) Esercizio: si scriva in linguaggio C un programma che che stampi sullo schermo una sequenza di numeri interi. compresa tra 0 e 100, in ordine crescente e poi decrescente.
Ho scritto questo:
La sequenza decrescente non termina più.
Con un secondo compilatore in C, che è online e si basa su Clang, mi dice che c'è un errore in cui la condizione del ciclo for è sempre vera ed in particolare l' errore riguarda tipo il numero "101".
Io quello che ho scritto lo interpreto così: Se il valore di "i" è compreso tra 0 e 100la condizione è sempre vera e quindi viene eseguito il codice all' interno del ciclo for e poi "i--". Se invece "i" ha un valore maggiore di 100 oppure minore di 101 allora la condizione è falsa e non vine eseguito il codice all' interno del cloco e "i--".
Ho fatto questa modifica "for (i=100;0>=i<101;i--)" ma la situazione in output è uguale.
Alla fine mi è venuta in mente questa correzione "for (i=100;-1<i;i--)" e l' output è finalmente ok.
In seguito ho pensato a questo: "i>-1 && i<101" e funziona.
Alla fine Ipotizzo che in C non è supportato o/e non è permesso questo:"0>=i<101" oppure "-1>i<101". Se è così allora l' importante è saperlo così almeno la prossima volta non farò questo errore.
Invece se lo sostituisco con questo: "i>-1 || i<101", su Pelles C continua a stampare sullo schermo "101" mentre sul compilatore online basato su Clang, continuare a stampare numeri in ordine decrescente. Con entrambi la condizione è sempre vera. "||" significa "OR" e quindi se almeno una delle due condizioni è vera esegue le istruzioni all' interno del ciclo e poi "i--".
2) Esercizio: ripere l' esercizio 1) , però la sequenza di numeri interi dev' essere compresi tra -100 e 0.
Appena è fatto lo posto.
3) Esercizio: Scrivere un programma in C che, senza fare uso di librerie esterne, impari da solo a scrivere una seguenza di numeri interi, compresi tra 0 e 100, prima in ordine crescente e poi in ordine descrente.
4) Esercizio: Ripeter l' esercizio 3) , però la seguenza i numeri interi dev' essere compresi tra -100.
Per quest' ultimi due esercizi ho una mezza idea che poi vi dirò così gentimente mi farete sapere se sono sulla strada giusta oppure no. Prima voglio pensare al 1* e al 2° esercizio, che tra l' altro sono più semplici rispetto agli ultimi due.
Ho degli esercizi in C che devo svolgere.
1) Esercizio: si scriva in linguaggio C un programma che che stampi sullo schermo una sequenza di numeri interi. compresa tra 0 e 100, in ordine crescente e poi decrescente.
Ho scritto questo:
C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num1=0;
int i;
printf("\n");
for (i=0;i<101;i++)
{
printf(" %d",num1);
num1++;
/*delay(1000);*/
}
printf("\n");
num1=100;
for (i=100;-1>i<101;i--)
{
printf(" %d",num1);
num1--;
/*delay(1000);*/
}
printf("\n\n");
return 0;
}
La sequenza decrescente non termina più.
Con un secondo compilatore in C, che è online e si basa su Clang, mi dice che c'è un errore in cui la condizione del ciclo for è sempre vera ed in particolare l' errore riguarda tipo il numero "101".
Io quello che ho scritto lo interpreto così: Se il valore di "i" è compreso tra 0 e 100la condizione è sempre vera e quindi viene eseguito il codice all' interno del ciclo for e poi "i--". Se invece "i" ha un valore maggiore di 100 oppure minore di 101 allora la condizione è falsa e non vine eseguito il codice all' interno del cloco e "i--".
Ho fatto questa modifica "for (i=100;0>=i<101;i--)" ma la situazione in output è uguale.
Alla fine mi è venuta in mente questa correzione "for (i=100;-1<i;i--)" e l' output è finalmente ok.
In seguito ho pensato a questo: "i>-1 && i<101" e funziona.
Alla fine Ipotizzo che in C non è supportato o/e non è permesso questo:"0>=i<101" oppure "-1>i<101". Se è così allora l' importante è saperlo così almeno la prossima volta non farò questo errore.
Invece se lo sostituisco con questo: "i>-1 || i<101", su Pelles C continua a stampare sullo schermo "101" mentre sul compilatore online basato su Clang, continuare a stampare numeri in ordine decrescente. Con entrambi la condizione è sempre vera. "||" significa "OR" e quindi se almeno una delle due condizioni è vera esegue le istruzioni all' interno del ciclo e poi "i--".
2) Esercizio: ripere l' esercizio 1) , però la sequenza di numeri interi dev' essere compresi tra -100 e 0.
Appena è fatto lo posto.
3) Esercizio: Scrivere un programma in C che, senza fare uso di librerie esterne, impari da solo a scrivere una seguenza di numeri interi, compresi tra 0 e 100, prima in ordine crescente e poi in ordine descrente.
4) Esercizio: Ripeter l' esercizio 3) , però la seguenza i numeri interi dev' essere compresi tra -100.
Per quest' ultimi due esercizi ho una mezza idea che poi vi dirò così gentimente mi farete sapere se sono sulla strada giusta oppure no. Prima voglio pensare al 1* e al 2° esercizio, che tra l' altro sono più semplici rispetto agli ultimi due.
Ultima modifica da un moderatore: