Mi serve aiuto per questo programma di battaglia navale.

di il
11 risposte

Mi serve aiuto per questo programma di battaglia navale.

#include <cstdlib>
#include <iostream>
#include <ctime>

using namespace std;

int main(int argc, char *argv[])
{
int n=0,x=0,y=0,a=0,b=0,i=0,c[10][10];
printf ("Battaglia navale");
printf ("\nInserisci righe e colonne.");
printf ("\nRighe: ");
scanf ("%d", x);
printf ("\nColonne: ");
scanf ("%d", y);
printf ("\nora inserisci il num delle navi: ");
scanf ("%d", n);
x=x-1;
y=y-1;
a=x;
b=y;
do
{
do
{
srand ((unsigned)time(NULL));
x = rand ( ) %a;
y=rand()%b;
}
while (c[x][y]==1);
c[x][y]=1;
i=i+1;
}
while (i<n);
i=0;
do
{
x=0;
y=0;
printf ("\nInserisci la coordinata di x: ");
scanf ("%d", x);
printf ("\nInserisci la coordinata di y: ");
scanf ("%d", y);
if (c[x][y]==1)
{
printf ("\nHai colpito una nave! Bravo!");
i=i+1;
c[x][y]=0;
}
else
printf ("\nAcqua, ritenta!");
}
while (i<n);
printf ("\n\nHAI VINTO!!!");
system("PAUSE");
return EXIT_SUCCESS;
}

Me lo compila, ma al momento dell'esecuzione si impalla. C'è un rimedio?

11 Risposte

  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Stai programmando in c o in c++? se usi il C allora cambia le librerie incluse in modo che siano quelle del c e non del c++... se invece usi il c usa il cin>> e non lo scanf, stessa cosa per il cout al posto di printf...
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Usa i code tags e leggi il regolamento.
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Programmo in c++!
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    skynet ha scritto:


    Usa i code tags e leggi il regolamento.
    printf e scanf non si usano in C++ quindi in cosa programmi?
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Printf e scanf non esistono in c++.
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    luigibana96 ha scritto:


    printf e scanf non esistono in c++.
    printf e scanf sono funzioni di libreria C perfettamente utilizzabili in C++
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    So che sono "perfettamente utilizzabili in C++", essendo inclusi in stdio.h e quindi in cstdio, altrettanto vero è che std::cin e cout sono leggermente superiori per compattezza, e sono inclusi in iostream, che è richiamato nel sorgente del tuo codice. Sono tanto migliori che utilizzando cin e cout in questo caso l'errore non ci sarebbe stato... L'errore infatti è che in scanf devi utilizzare l'operatore &... del tipo:
    scanf("%d",&a);
    in tutti gli esempi di scanf.
    enjoy
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    luigibana96 ha scritto:


    So che sono "perfettamente utilizzabili in C++"
    Quindi perché affermare che addirittura "non esistono in C++" ?
    Semmai "non si dovrebbero usare", come detto in precedenza.
    altrettanto vero è che std::cin e cout sono leggermente superiori per compattezza.
    No ... sono molto superiori (e per tanti altri motivi molto più importanti della compattezza).
    Ma ciò non vuol dire automaticamente che in C++ "non esista" la printf e la scanf.
    Tanto che utilizzando cin e cout in questo caso l'errore non ci sarebbe stato... L'errore infatti è che in scanf devi utilizzare l'operatore &...
    Che discorso è ?

    L'errore non ci sarebbe stato se solo si fosse saputa usare la scanf correttamente.
    Lo stesso per la cin e la cout se si usano in maniera non corretta.
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Beh, mi sembra che cin>>a; sia un po più semplice da applicare di scanf con tutte le considerazioni sui tipi in fase runtime .. Poi, l'enorme differenza di velocità e potenzialità del C rispetto agli oggetti del C++ non penso che la gente normale la veda, intendo a livello di operazioni base tipo questo esercizio. Del resto ti do ragione, esistono, ma preferisco gli oggetti. Ora non facciamone un dramma per qualche dichiarazione fuori posto che c'è qualcuno che sta in alto mare con la battaglia navale
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    luigibana96 ha scritto:


    Beh, mi sembra che cin>>a; sia un po più semplice da applicare di scanf con tutte le considerazioni sui tipi in fase runtime .. Poi, l'enorme differenza di velocità e potenzialità del C rispetto agli oggetti del C++ non penso che la gente normale la veda, intendo a livello di operazioni base tipo questo esercizio. Del resto ti do ragione, esistono, ma preferisco gli oggetti. Ora non facciamone un dramma per qualche dichiarazione fuori posto che c'è qualcuno che sta in alto mare con la battaglia navale
    Nessun dramma ... e non voglio andare fuori tema. Solo precisare che "non esiste" non è corretto.
  • Re: Mi serve aiuto per questo programma di battaglia navale.

    Grazie a tutti, problema risolto
Devi accedere o registrarti per scrivere nel forum
11 risposte