09/07/07 9:15
Natureboy
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:
[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!
[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!
aaa