|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2009
Messaggi: 249
|
problema dimensione array
ragazzi ho un problema, allora io dovrei fare un programma che dato un array di 10 numeri, dovrei dividere i numeri dell'array in due array divisi in pari e dispari, io ho fatto questo ma ci saranno 18000 errori di semantica:
#include<iostream> using namespace std; int main() { int* dati = new int[10]; int* pari = new int[]; int* dispari = new int[]; int j=0; int z=0; cout<<"inserisci dati"; for(int i=0; i<10; i++) { cin>>dati[i]; } for(int i=0; i<10; i++) { if(dati[i] % 2 == 0) { j++; pari[j] = dati[i]; } else { z++; dispari[z] = dati[i]; } } return 0; } non so di quanti numeri dichiarare gli altri due vettori perche non so effettivamente quanti ne servano |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Poi non si può dichiarare pari e dispari con quella sintassi (non semantica), poichè manca la dimensione. Devi evidentemente prima di tutto contare i numeri pari, poi allochi lo spazio necessario, usando new, ai vettori pari e dispari, facendo quindi un ciclo in più. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2009
Messaggi: 249
|
Codice:
#include<iostream>
using namespace std;
int main()
{
int* dati = new int[10];
int j=0;
int z=0;
cout<<"inserisci dati";
for(int i=0; i<10; i++)
{
cin>>dati[i];
if(dati[i] % 2 == 0)
j++;
else
z++;
}
int* pari = new int[j];
int* dispari = new int[z];
for(int i=0; i<10; i++)
{
if(dati[i] % 2 == 0)
{
j++;
pari[j] = dati[i];
}
else
{
z++;
dispari[z] = dati[i];
}
}
return 0;
}
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: May 2010
Messaggi: 126
|
Ma come fa a funzionare se nell'ultimo ciclo for vai oltre la dimensione dell'array?
__________________
Il mio pc: Scheda madre:MSI Amethyst-m; Processore:amd sempron 3400+;2000Mhz Ram:ddr-sdram 1024Mb; Scheda grafica:Nvidia geforce 6200SE Turbocache; Scheda audio:AC'97 Audio controller Sistema Operativo:Windows 7 32bit |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:14.




















