Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2005, 16:21   #1
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
[C] - syntax error : missing ';' before 'type'

Ciao a tutti, espongo subito il mio problema.
questo è il programma che ho:

Codice:
#include <stdio.h>
#define N 7
int diff (int[], int, int[]);

void main()
{
	int i;
	int a[N]={6,2,3,12,5,8,20};
	int b[N];
	for(i=0; i<N; i++){
		b[N]=diff(a, N, b);
		printf("L'array delle differenze è: ");
	}

int diff (int a[], int N, int b[])
{
	int i;
	for(i=1; i<N-1; i++)
		b[i]=a[i+1]-a[i];
	return b[i];
}
--------------------Configuration: Differenze in avanti - Win32 Debug--------------------
Compiling...
main.c
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(15) : error C2143: syntax error : missing ';' before 'type'
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(20) : warning C4098: 'main' : 'void' function returning a value
Error executing cl.exe.

main.obj - 1 error(s), 1 warning(s)
________________________________________________________
Perchè, qualsiasi cosa scrivo mi da sempre lo stesso errore che ho segnato in rosso??? Dov'è sbagliata la function diff??
Grazie per le eventuali risposte
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:44   #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
Manca la parentesi graffa chiusa prima di "int diff"...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:46   #3
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Quote:
Originariamente inviato da cionci
Manca la parentesi graffa chiusa prima di "int diff"...
Ca**o è vero...mi sto proprio cecando gli occhi con questi programmini
Grazie cionci
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:48   #4
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:49   #5
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Nooooooooooooo l'ho messa la {...ma ora mi da 4 errori!!!!!
vabbè ci rinuncio.
ciauz
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:51   #6
::::Dani83::::
Senior Member
 
Iscritto dal: Jul 2003
Città: Rimini
Messaggi: 3392
mi sa che nn hai inizializzato bene la N
__________________
.
::::Dani83:::: è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:54   #7
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da pivaino
Nooooooooooooo l'ho messa la {...ma ora mi da 4 errori!!!!!
vabbè ci rinuncio.
ciauz
ci voleva ancora un' altra } prima dell' int diff per chiudere , oltre che l' if statement , anche il main ...
tu ne avevi messa solo una, logico che se ne aggiungi un' altra aperta gli errori aumentino
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 16:58.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:57   #8
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Quote:
Originariamente inviato da jappilas
ci voleva ancora un' altra } prima dell' int diff per chiudere , oltre che l' if statement , anche il main ...
tu ne avevi messa solo una, logico che se ne aggiungi un' altra aperta gli errori aumentino
No, ho sbagliato a scriverla qui nel post...ma ne prog. l'ho messa bene }
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 16:58   #9
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Quote:
Originariamente inviato da ::::Dani83::::
mi sa che nn hai inizializzato bene la N
Cioè??? HELP ME
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:01   #10
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
questo warning
Quote:
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(20) : warning C4098: 'main' : 'void' function returning a value
mi dava la conferma che il compilatore considerasse il return in fondo alla diff come ancora appartenente al main, quindi il main davvero non fosse chiuso
Quote:
Originariamente inviato da pivaino
Cioè??? HELP ME
dont worry, la N è #define-ita in cima altrimenti ti avrebbe dato un altro errore sulla dimensione dell' array
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 17:05.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:10   #11
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Riscritta bene, cioè cosi:

Codice:
#include <stdio.h>
#define N 7
int diff (int[], int, int[]);

void main()
{
	int i;
	int a[N]={6,2,3,12,5,8,20};
	int b[N];
	for(i=0; i<N; i++){
		b[N]=diff(a, N, b);}
		printf("L'array delle differenze è: ");
}

int diff (int a[], int N, int b[])
{
	int i;
	for(i=1; i<N-1; i++)
		b[i]=a[i+1]-a[i];
	return b[i];
}
mi da i seguenti errori in compilazione:
--------------------Configuration: Differenze in avanti - Win32 Debug--------------------
Compiling...
main.c
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(15) : error C2143: syntax error : missing ')' before 'constant'
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(15) : error C2143: syntax error : missing '{' before 'constant'
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(15) : error C2059: syntax error : '<Unknown>'
C:\Documents and Settings\Peppe\Desktop\Array1D\Differenze in avanti\main.c(15) : error C2059: syntax error : ')'
Error executing cl.exe.

main.obj - 4 error(s), 0 warning(s)
___________________________________________________
tutti errori riferiti alla riga in rosso.
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:13   #12
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
stavo appunto per chiedere che errori ti dà, perchè ora che leggo meglio, l' algoritmo mi suona un po' strano
... nel main hai un loop per riempire gli N elementi di b con una funzione, e va bene
però la diff fa (qualcosa) sugli elementi di a per poi ritornare (come secondo membro di un' assegnazione) di nuovo degli elementi di b...

in pratica vuoi fare <delle cose> su una stessa variabile (l' array b) da due posti diversi annidando due cicli: sicuro che ti serva proprio una cosa del genere ?
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 17:27.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:19   #13
pivaino
Member
 
Iscritto dal: Sep 2005
Messaggi: 51
Quote:
Originariamente inviato da jappilas
stavo appunto per chiedere che errori ti dà, perchè ora che leggo meglio, l' algoritmo mi suona un po' strano
... nel main hai un loop per riempire gli N elementi di b con una funzione, e va bene
però la diff fa (qualcosa) sugli elementi di a per ritornare (come secondo membro di un' assegnazione) di nuovo degli elementi di b...

in pratica hai due cicli annidati: ti servono?
Non saprei perche il prof. ce l'ha fatto strutturare cosi in aula!!!
pivaino è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:32   #14
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da pivaino
Non saprei perche il prof. ce l'ha fatto strutturare cosi in aula!!!
certo che sono proprio passati i tempi in cui i prof facevano fare il programma per calcolare il fattoriale o il num. di fibonacci e l' implementazione era praticamente impossibile da sbagliare... adesso si devono sbizzarrire...
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 18:28.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:37   #15
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
"N" è una costante che vale in tutte le funzioni del tuo programma, quindi che bisogno hai di passarlo alla funzione "diff"?
"N" non è un int... è come se facessi int 6

Ultima modifica di kk3z : 19-11-2005 alle 17:42.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:45   #16
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da kk3z
"N" è una costante che vale in tutte le funzioni del tuo programma, quindi che bisogno hai di passarlo alla funzione "diff"?
"N" non è un int... è come se facessi int 6
infatti, me lo stavo chiedendo,
come mi chiedevo anche per quale motivo nel loop si va ogni volta ad assegnare non l' elemento i-esimo di b, ma quello N esimo (che non esiste, perchè l' indice dell' ultimo elemento in un array di dimensione N è N-1), quindi già qui c' è un errore

ma anche se fosse scritto N-1, tu lasceresti indefiniti gli altri N-1 elementi dell' array per avere un <qualcosa> scritto nell' ultima cella
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 17:57.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:50   #17
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Codice:
int b[N];
for(i=0; i<N; i++){
    b[N]=diff(a, N, b);}
Ciao, sei sicuro dell'assegnazione che ho marcato in rosso??? Così vai fuori dall'array!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:56   #18
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
Quote:
Originariamente inviato da andbin
Codice:
int b[N];
for(i=0; i<N; i++){
    b[N]=diff(a, N, b);}
Ciao, sei sicuro dell'assegnazione che ho marcato in rosso??? Così vai fuori dall'array!
l' avevo scritto anch'io, ma repetita juvant
se non ricordo male, inizializzare l' array a dimensione fissa impedisce di sfondarlo dopo... è il caso delle stringhe o dei vettori di cui non si sa a priori la dimensione a essere problematico

...allora, partiamo dal presupposto che tu voglia ottenere di salvare in b un vettore di differenze di questo tipo ( 2-6, 3-2, 12-3, 5-12, 8-5, 20-8 )

si vede che tale vettore sarà composto da 6, cioè 7-1, cioè N-1, elementi, il che forse spiegherebbe l' N-1 nel loop della diff()...
però allora secondo me si dovrà dimensionare b a N-1 e non avrà senso nè fare un loop annidato, nè iterare N volte quello nel main: l' algoritmo che si ottiene ha un implementazione in codice già ai minimi termini, quindi non avrebbe molto senso dichiarare funzioni aggiuntive come diff(a,i) per fare a[i+1]-a[i] ... (*)

(*) a meno che il vero scopo dell' esercizio non fosse semplicente farti fare pratica con le chiamate a funzione per valore e per riferimento...
o a meno che non fosse esplicitamente richiesto che l' array delle differenze generato non fosse anche ordinato o elaborato in altro modo...

Codice:
#include <stdio.h>
#define N 7
// int diff (int[], int, int[]); inutile 

void main()
{
	int a[N]={6,2,3,12,5,8,20};
	int b[N-1];
	for(int i=0; i<N-1; i++)
	{
		b[i] = a[i+1] - a[i];    //invece di diff(a, N, b); // 
	}
	printf("L'array delle differenze è: %d %d %d %d %d %d\n", 
		b[0], b[1], b[2], b[3], b[4], b[5] ); 
}
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 19-11-2005 alle 19:58.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 21:51   #19
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
in caso la richiesta fosse stata ordinare l' array delle differenze risultanti,
guarda se ti piace questa soluzione con un insertion sort (riciclabile!) da 4 lines of code reali

Codice:
#include <stdio.h>
#include <stdlib.h>
#define N 7

void insertsort(int val, int* vector)  // O(n^2) // N>1 //
{
	int i=0;
	for (int j=0; j<N-1; j++)
		if (val>vector[i])
			i++;
	for (int k=N-2; k>i; k--) 
		vector[k+1]=vector[k];
	vector[i]=val;
};

void main()
{
	int diff;	
	int A[N]={6, 2, 3, 12, 5, 8, 20};
	int B[N-1];
	for (int i=0; i<N-1; i++)
	{
		diff=A[i+1]-A[i];
		insersort(diff, B);
	}
	printf("L'array delle differenze è: %d %d %d %d %d %d\n",
		B[0], B[1], B[2], B[3], B[4], B[5]);
}
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 20-11-2005 alle 23:00.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 10:38   #20
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
il problema non è nell'array....ma è in questa:
Codice:
int diff(int a[], int N, int b[])
prova a scriverla così:
Codice:
int diff(int a[], int b[])
e vedi che tutto comincia a funzionare
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Atari rilancia Intellivision Sprint e fa...
Leapmotor lancia in Italia il SUV elettr...
QNAP punta sempre più in alto con...
Scandalo ibride plug-in: consumano come ...
L'intelligenza artificiale fa sempre pi&...
Oracle dal punto di vista dell’Europa: l...
James Dyson Award 2025: dall'accessibili...
Xiaomi: gli smartphone con display poste...
Final Fantasy 7 Remake Part 3 offrir&agr...
Chery presenta Omoda 4, da benzina a ele...
TSMC alza i prezzi: Qualcomm e MediaTek ...
Una Offline Room per aiutare gli student...
Partnership EOLO-Qualcomm: connettivit&a...
Fanatec senza freni: ufficiali il nuovo ...
Instagram, arriva la classificazione PG-...
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: 15:40.


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