Natureboy (Normal User)
Newbie
Messaggi: 2
Iscritto: 09/07/2007
|
Ciao a tutti, sono alle prime armi di programmazione C++, sto scrivendo un programmino con Visual C++ ed ho qualche problema con gli scanf. Riporto la parte iniziale del programma:
Codice sorgente - presumibilmente C++ |
[CODE] #include <stdio.h> #include <stdlib.h> #include "funzioni.h" void main() { int nmic, size, m, k, i, j, sumlambda, medialambda, sumcoppie, omog, newsumlambda, newmedialambda, newsumcoppie, newomog, c1, c2, c3, costo, g, h, c1new, c2new, c3new, microfoni, newcosto; float sum; printf("Inserire numero: \n"); scanf_s("%d\n", &nmic); size=-1; float **a; int **l; int **lm; int **ncoppie; a=new float *[nmic-1]; l=new int *[nmic]; for(int i=0; i<nmic; i++) l[i]=new int [nmic]; lm=new int *[nmic]; for(int i=0; i<nmic; i++) lm[i]=new int [nmic]; ncoppie=new int *[2]; for(int i=0; i<2; i++) ncoppie[i]=new int [size+1]; /* Creazione di un vettore */ for(m=1; m<nmic; m++){ printf("Inserire la distanza fra i microfoni %d", m); printf(" e %d: \n", m+1); scanf_s("\n%f\n", &a[m-1]); } for(i=0; i<nmic; i++) printf("Valore %f: ", a[i]); /* Creazione matrice */ sum=0; for(i=0; i<nmic; i++){ for(j=i+1; j<nmic; j++){ for(k=0; k<j; k++) sum+=*a[k]; *l[i, j]=*l[j, i]=340/(sum*2); } } [/CODE]
|
La compilazione avviene senza errori, quando avvio il debug però avvengono le seguenti cose:
1) sul primo scanf non so perchè ma devo inserire il numero 2 volte (premendo quindi 2 volte invio) per far andare avanti il debug;
2) sul secondo scanf, all'interno del ciclo for, si blocca il debug riportando un errore nella riga " sum+=*a[k] "; in realtà da quanto ho capito nello scanf del ciclo for non riesce a memorizzare i valori che digito all'interno del vettore a[].
Qualcuno riesce ad aiutarmi? Grazie!
|