Torna indietro   Hardware Upgrade Forum > Software > Programmazione

PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Nothing con il suo nuovo Phone 4(a) conferma la sua identità visiva puntando su una costruzione che nobilita il policarbonato. La trasparenza resta l'elemento cardine, arricchita da una simmetria interna curata nei minimi dettagli. Il sistema Glyph si evolve, riducendosi nelle dimensioni ma aumentando l'utilità quotidiana grazie a nuove funzioni software integrate e notifiche visive. Ecco tutti i dettagli nella recensione completa
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2005, 17: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, 17: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, 17: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, 17: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, 17: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, 17:51   #6
::::Dani83::::
Senior Member
 
Iscritto dal: Jul 2003
Città: Rimini
Messaggi: 3395
mi sa che nn hai inizializzato bene la N
__________________
.
::::Dani83:::: è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17:54   #7
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 17:58.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 17: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, 17: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, 18:01   #10
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 18:05.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 18: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, 18:13   #12
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 18:27.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 18: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, 18:32   #14
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 19:28.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 18: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 18:42.
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 18:45   #16
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 18:57.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 18: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, 18:56   #18
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 20:58.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2005, 22:51   #19
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
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 : 21-11-2005 alle 00:00.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 11: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


PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Riceve il reso di una RTX 5090 da 4.000 ...
Gli utenti con GPU Intel non possono gio...
Un agente AI visita 5.000 siti dove un u...
IA, virtualizzazione e cyber resilienza:...
AMD aggiorna FSR alla versione 4.1. Migl...
Nuovi suffissi internet 2026: per la sec...
Claudy Day: tre vulnerabilità in ...
Record di efficienza per i pannelli sola...
SteamOS 3.8 è disponibile in ante...
Opel in Formula E dalla Stagione 13: con...
Windows 11 26H1: ecco le scadenze esatte...
Arriva HiSecEngine USG6000G, la nuova ga...
Xiaomi SU7 2026 ufficiale con 902 km di ...
Il tuo vecchio iPhone potrebbe essere gi...
Già disponibile un primo aggiorna...
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: 20:45.


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