[C++] Prima volta compilazione con DEV C++

tematica@alice.it
Buonasera a tutti.
Usando il programma indicato nel titolo ho inserito questo :

#include
main()
{int SOMMA=0,k,d[100];
printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
for(K=0;k<100;k++);
{printf("\n INSERISCI IL N DI POS. %d", k);
scanf("%d",&d[k]);
SOMMA=SOMMA+d[K];
}
printf("\n LA SOMMA RISULTA %d", SOMMA);
}


eseguendo la compilazione il programma mi restituisce i seguenti errori :

C:\Users\Desktop\programmazione.txt file not recognized: File format not recognized

C:\Users\Desktop\collect2.exe [Error] ld returned 1 exit status

Come risolvo ?

Siccome parto da zero, potete indicarmi siti da consultare per imparare gradualmente?

Grazie 1000 in anticipo a chi vorrà rispondere !

Peter

Risposte
vict85
Il secondo errore non so a cosa sia dovuto, per quanto riguarda il primo immagino che possa essere legato al fatto che hai salvato il codice come .txt invece che come .cpp (o altre estensioni ammissibili).

Venendo al tuo codice. Il main deve avere come valore di ritorno int. Inoltre, siccome stai lavorando in C++ e non in C manca un
usign namespace std;


Insomma il tuo codice dovrebbe essere
#include <stdio.h>

using namespace std;

int main()
{
  int SOMMA=0,k,d[100];
  printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
  for(K=0;k<100;k++);
  {
    printf("\n INSERISCI IL N DI POS. %d", k);
    scanf("%d",&d[k]); 
    SOMMA=SOMMA+d[K]; 
  }
  printf("\n LA SOMMA RISULTA %d", SOMMA); 
}


D'altra parte il tuo codice contiene varie caratteristiche vecchio C, che non hanno senso in C++ né nel C moderno. In particolare non hai bisogno di definire le variabili all'inizio del main. Ritengo sia meglio definirli dove li sui. In particolare l'unica variabile che usi fuori dal for è SOMMA. Inoltre non hai bisogno di memorizzare tutti i numeri. Perciò è meglio fare cosi:
#include <stdio.h>

using namespace std;

int main()
{
  printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
  int SOMMA=0;
  for(int k=0; k<100; k++);
  {
    int d;
    printf("\n INSERISCI IL N DI POS. %d", k);
    scanf("%d",&d); 
    SOMMA=SOMMA+d; 
  }
  printf("\n LA SOMMA RISULTA %d", SOMMA); 
}


A questo punto nota altre due cose. Il primo è che il C++ tende a chiamare le librerie C usando la notazione
#include <cstdio>
#include <cstdlib>
#include <cmath>
...
e così via. E che inoltre esiste l'operatore += che è equivalente a fare
A = A + B;
. Perciò suggerirei la versione
#include <cstdio>

using namespace std;

int main()
{
  printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
  int SOMMA=0;
  for(int k=0; k<100; k++);
  {
    int d;
    printf("\n INSERISCI IL N DI POS. %d", k);
    scanf("%d",&d); 
    SOMMA += d; 
  }
  printf("\n LA SOMMA RISULTA %d", SOMMA); 
}

tematica@alice.it
inserendo cosi:

#include
#include
#include
#include
using namespace std;
int main()
{
int SOMMA=0,k,d[100];
printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
for(k=0;k<100;k++);
{
printf("\n INSERISCI IL N DI POS. %d : ", k);
scanf("%d",&d[k]);
SOMMA=SOMMA+d[k];
}
printf("\n LA SOMMA RISULTA %d", SOMMA);
}


non ho ritorno di errori durante la compilazione :smt023 ma, lanciando l'esegui , non funziona, nel senso che non fa la somma ma restituisce semplicemente il numero imputato .... boh ?... :evil:

minomic
Non ci vuole il ; dopo il for.
Il codice corretto, indentato bene e postato nei tag CODE è il seguente

#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;

int main()
{
    int SOMMA=0,k,d[100];
    printf("QUESTO PROGRAMMA SOMMA 100 NUMERI");
    for(k=0; k<100; k++)
    {
        printf("\n INSERISCI IL N DI POS. %d : ", k);
        scanf("%d",&d[k]);
        SOMMA=SOMMA+d[k];
    }
    printf("\n LA SOMMA RISULTA %d\n", SOMMA);
}


P.S. Se il tuo scopo è solo quello di fare la somma allora non è nemmeno necessario memorizzarli in un array. Ti basta tenere la variabile SOMMA e una sola variabile in cui vai a leggere il numero. Quindi fai la somma "al volo"

SOMMA += numero;

tematica@alice.it
:smt023

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.