Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
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


Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Formula 1 2026, nuove gare Sprint in cal...
MacBook Pro con display OLED e supporto ...
Poste Italiane: dati di milioni di utent...
Microsoft blocca RaccoonO365, rubate olt...
15 anni dopo Skate 3, il gioco torna sot...
Molte novità per MongoDB: version...
Cina, stop alle GPU NVIDIA: Pechino inti...
Google Pixel 10 con sconti super: ecco q...
Apple Mac mini con chip M4 a soli 598€ s...
DJI firma la rivoluzione: ecco il Mini 5...
Si spara in Friuli Venezia Giulia, ma so...
Trasformare una sigaretta elettronica us...
Addio ai clic inutili: arriva l'app Goog...
L'autobus elettrico interurbano di Merce...
Il PPE contro il Green Deal: 'Salviamo l...
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: 16:45.


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