PDA

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:



*****
****
***
**
*

cionci
12-09-2004, 08:54
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

cionci
12-09-2004, 09:22
No...perchè c'era scritto che deve essere fatto con i clicli for ;)

repne scasb
12-09-2004, 09:25

cionci
12-09-2004, 09:29
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');
}
}

cionci
12-09-2004, 09:31
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

cionci
12-09-2004, 09:35
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

cionci
12-09-2004, 09:53
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

cionci
12-09-2004, 11:05
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;
}
}

cionci
12-09-2004, 13:33
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++ ?