View Full Version : Problema con semplice esercizio in C :-(
D4rkAng3l
11-09-2004, 16:54
Non riesco proprio a fare questo programma...lo so che è una cavolata ma su queste cose mi ci sono sempre impiccato....
Praticamente devo far visualizzare questo disegnino:
* * * * *
* * * *
* * *
* *
*
Isomma un triangolo di asterischi (considerandoli tutti attaccati...quì ho aggiunto uno spazio tra un asterisco e l'altro per incolonnarli decentemente) che vadano a decrescere e nella parte sinistra devono essere sostituiti da uno spazio man mano che descrescano
prima riga: 5 asterischi
seconda rica: 1 spazio e 4 asterischi
terza riga: 2 spazi e 3 asterischi
deve essere fatto con i cicli for....ho provato un po' di tutto ma non mi riesce....come si fa?
Grazie
D4rkAng3l
11-09-2004, 16:56
non so perchè ma il forum fa vedere il triangolo rigirato...prestate fede alle spiegazioni scritte
/\/\@®¢Ø
11-09-2004, 17:40
Originariamente inviato da D4rkAng3l
non so perchè ma il forum fa vedere il triangolo rigirato...prestate fede alle spiegazioni scritte
Usa [ quote ] o [ code ] per non farti togliere l'indentazione
Soluzione naive:
#include <stdio.h>
int main()
{
int length,spaces,i;
length = 5;
for ( spaces=0 ; spaces < length ; ++spaces )
{
for ( i=0 ; i<spaces ; ++i )
putchar(' ');
for ( i=spaces ; i < length ; ++i )
putchar('*');
putchar('\n');
}
return 0;
}
( modulo errori che di solito scrivo in C++ :p )
The DeViL's
11-09-2004, 18:00
eccoti l'esercizio:
#include <stdio.h>
void spazio(int s)
{
int i;
for(i=0;i<=s;i++)
printf(" ");
}
void main()
{
int i,j;
for(i=0;i<=4;i++)
{
for(j=i;j<=4;j++)
printf("*");
printf("\n");
spazio(i);
}
}
spero ti vada bene;)..l' ho fatta ora in 1 minuto...poi se nn ti va bene te la rifaccio ma ora devo scappare...fammi sapere ciao
col programma che ti ho fato viene una cosa del genere:
*****
****
***
**
*
Io lo farei così:
#include <stdio.h>
main()
{
int i = 0;
char s[] = "*****";
for(; i<5; ++i) {
puts(s);
s[i] = ' ';
}
}
repne scasb
12-09-2004, 09:08
No...perchè c'era scritto che deve essere fatto con i clicli for ;)
repne scasb
12-09-2004, 09:25
Ah...se vuoi evitare l'uso delle stringhe e della puts:
main()
{
int i = 0, j;
for(; i<5; ++i)
{
for(j=0; j<5; ++j)
{
if(j>=i)
putchar('*');
else
putchar(' ');
}
putchar('\n');
}
}
Originariamente inviato da repne scasb
Ah, ok:
#include <stdio.h>
main()
{
for( ; ; ) break;
puts("*****");
puts(" ****");
puts(" ***");
puts(" **");
puts(" *");
}
Sei un mito :D:rotfl:
Ora ti voglio fare impazzire...e senza puts ? Magari non l'ha ancora fatta ;)
repne scasb
12-09-2004, 09:32
Originariamente inviato da repne scasb
Cosi' che te ne pare?
#include <stdio.h>
main()
{
int i;
char *s[]={"*****"," ****"," ***"," **"," *"};
for(i=0;i<5;i++)
puts(s[i]);
}
Che sprecona di memoria...non me lo sarei aspettato da te :nonsifa: :sofico:
repne scasb
12-09-2004, 09:38
repne scasb
12-09-2004, 09:44
Originariamente inviato da repne scasb
Una volta (assembly per 8086) usavo le tabelle anche per fare le moltiplicazioni.
:eek:
Finchè avevi gli interi a 16 bit era anche accettabile ;) E sicuramente più veloce...
repne scasb
12-09-2004, 10:25
Ah...ok... Un vettore con tutte le moltilpicazioni degli interi (da 0 a 204) x 320...
Arguta, davvero...con 408 byte ti coprivi tutti i possibili valori...
StErMiNeiToR
12-09-2004, 12:29
vado a pranzo mi scuso se avete gia risolto ma nn ho tempo per vedere ;)
#include "iostream.h"
void main ()
{
for (int i=4;i>=0;i--)
{
for(int u=i;u>=0;u--)cout<<"*";
cout<<endl;
}
}
StErMiNeiToR: leggi anche il secondo post...inoltre doveva essere in C ;)
The DeViL's
12-09-2004, 14:33
#include <stdio.h>
void spazio(int s)
{
int i;
for(i=0;i<=s;i++)
printf(" ");
}
void main()
{
int i,j;
for(i=0;i<=4;i++)
{
for(j=i;j<=4;j++)
printf("*");
printf("\n");
spazio(i);
}
}
StErMiNeiToR
12-09-2004, 14:48
ops scusate :D non conosco il C... solo c++ ^^
D4rkAng3l
12-09-2004, 14:53
Grazie a tutti ragazzi, cmq senza funzioni...stò rivedendo un po' il programma del corso di C e mi sono tristemente accorto di non ricordarmi un ceppotto ew non mi vengono neanche i programmill facili...sono disperato e mi sento scemo :cry: Sopratutto mi stò chiedendo come ho fatto a superare l'esame di assembler con le funzioni ricorsive :eek: forse l'estate mi ha bruciato qualche neuroneeee :D :cry: :muro:
The DeViL's
12-09-2004, 15:07
Originariamente inviato da D4rkAng3l
Grazie a tutti ragazzi, cmq senza funzioni...stò rivedendo un po' il programma del corso di C e mi sono tristemente accorto di non ricordarmi un ceppotto ew non mi vengono neanche i programmill facili...sono disperato e mi sento scemo :cry: Sopratutto mi stò chiedendo come ho fatto a superare l'esame di assembler con le funzioni ricorsive :eek: forse l'estate mi ha bruciato qualche neuroneeee :D :cry: :muro:
eccotelo senza funzioni:
#include <stdio.h>
void main()
{
int i,j;
for(i=0;i<=4;i++)
{
for(j=i;j<=4;j++)
{
if(j>=i)
printf("*");
printf(" ");
}
printf("\n");
}
}
StErMiNeiToR
12-09-2004, 15:20
ma in pratica cosa cambia dal C al C++ ?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.