Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-02-2002, 20:20   #1
Pettinato
Member
 
L'Avatar di Pettinato
 
Iscritto dal: Jun 2000
Città: Milano
Messaggi: 136
Problema in C

Ciao a tutti
sto risolvendo il seguente esercizio:

Si scriva un programma che legge una sequenza di almeno 1000 interi
distinti, ciascuno seguito immediatamente da una lettera. Il carattere
# indica la fine della sequenza. In seguito si legge un altro intero e,
sulla base della sequenza introdotta, si determini se esiste una
lettera associata a quell'intero.

Ho risolto così:

#include <stdio.h>
#include <ctype.h>

typedef struct scat {
int n;
char c;
}SCATOLA;

SCATOLA *A;


void CREA (int f){

SCATOLA B[f];
A=&B[0];}

int main()
{
int l,f,e,i;
char d;
printf("\n");

printf("\n");
printf(" Immettere valore della lunghezza del vettore delle scatole\n");
scanf("%5d",&l);

CREA(l);
for(i=0;i<l;i++)
{
printf("Immettere lettera\n");
scanf("%c",&A[i].c);
printf("\n");
if(A[i].c=='#')
{
printf("Se si ha intenzione di cercare la lettera associata ad un numero \n");
printf(" premere A, per uscire premere E\n");
scanf("%c",&d);
if(d==97)
{
printf("Immettere numero associato alla lettera\n");
scanf(" 5%d ",&e);
for(f=0;f!=i;f++)
if (A[f].n==e)
printf("La lettera associata 5%d ",A[f].c);
else
printf("Errore numero non esistente");
return 0;
}
else
return 0;
}
printf("Immettere cifra\n");
scanf(" %5d",&A[i].n);
printf("\n");

}
return 0;}


Dopo aver compilato il tutto senza alcun problema faccio girare il programma ma succede questo:

Immettere valore della lunghezza del vettore delle scatole
2
Immettere lettera

Immettere cifra
a

Immettere lettera

Immettere cifra
4

Praticamente mi fa solo una richiesta non capisco, dovrebbe chiedermi anche il numero .

Bo non saprei.

Confido nel vostro aiuto.

Ciao e grazie
__________________
athlon xp-m 2400Mhz asus a7n8x-x ati 9800 aiw@9800pro
Pettinato è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 10:51   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quello che mi stupisce è che ti abbia compilato !!!

void CREA (int f){

SCATOLA B[f];
A=&B[0];}

Non è possibile mettere una variabile nell dimensione del vettore...

L'intero immesso deve essere prestabilito...se vuoi creare un vettore non non abbia dimensioni prestabilite devi usare malloc e per liberare la memoria free...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 10:56   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Non è possibile mettere una variabile nell dimensione del vettore...
Invece è ammissibile, in quanto B viene allocata dinamicamente sullo stack. L'errore è dovuto al fatto che B[f], essendo locale, viene distrutta all'uscita di CREA, quindi in ogni caso deve essere allocata con malloc. Ne ho già discusso con Pettinato su icq.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 11:00   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' ammissibile ? Azz...non lo sapevo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 11:10   #5
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Guarda questa funzione:
void foo(int x) {
int a[x];
a[1] = 2;
a[2] = 1;
}

gcc la compila così:

pushl %ebp
movl %esp, %ebp
pushl %eax
pushl %eax
movl %esp, %edx

// In %ebp+8 c'è x e viene messo in %eax
movl 8(%ebp), %eax
// Le 3 ricghe che seguono calcolano (x*4+15)&0xfffffff0
// (arrotondamento al frame superiore, per motivi di velocità)
decl %eax
leal 19(,%eax,4), %eax
andl $-16, %eax

// Allocazione dinamica!
subl %eax, %esp
// Ora %esp punta ad a[0], %esp+4 ad a[1] ecc.
movl $2, 4(%esp)
movl $1, 8(%esp)

movl %edx, %esp
movl %ebp, %esp
popl %ebp
ret
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 11:37   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ganzo...non lo sapevo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 11:39   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In Visual C++ :

(145) : error C2057: expected constant expression
(145) : error C2466: cannot allocate an array of constant size 0
(145) : error C2133: 'a' : unknown size

Ovviamente la riga 145 è quella di int a[x]
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 12:32   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il gcc non è il Visual C++
(per fortuna)

Puoi provare col Borland?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 13:55   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ilsensine
[b]Puoi provare col Borland?
Con il Turbo C per DOS mi sembra che non si possa fare...
Con il Borland purtroppo non posso provare...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 15:28   #10
51078
Senior Member
 
L'Avatar di 51078
 
Iscritto dal: Oct 2000
Messaggi: 637
Con il Borlnad C++ Builder non è possibile fare quello che dite
SCATOLA B[f];
Mentre con altri compilatri (ad esempio Dev C++)si, come è possibile, anche se su entrambi è settata come modalita ANSI C?
51078 è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2002, 20:38   #11
Pettinato
Member
 
L'Avatar di Pettinato
 
Iscritto dal: Jun 2000
Città: Milano
Messaggi: 136
Scusate me non si è risolto praticamente niente mi fa solo una richiesta di scanf e basta.

Ciao e grazie
__________________
athlon xp-m 2400Mhz asus a7n8x-x ati 9800 aiw@9800pro
Pettinato è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
SpaceX non lancerà più Sta...
EHA Reader Awards 2026: i migliori prodo...
NVIDIA ha insegnato all'IA a ricostruire...
Rimosso un raro tumore grazie alla simul...
ASUS alza l'asticella del gaming: ecco i...
I satelliti Rassvet (Starlink russo) di ...
AMD stravince la sua stessa sfida sull'e...
Novità per Renault 5: più ...
Altman ammette: "Troppo ambiziosi s...
Grazie al radiotelescopio ALMA c'è...
Estensioni per browser e shadow AI sono ...
ASUS ROG punta sugli eSport con OLED da ...
Un chip più piccolo e un package ...
Windows 11, la DLL della memoria unifica...
Arrivano i nuovi Mac mini e Mac Studio c...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v