Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-12-2009, 21:31   #1
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
[C] Errore durante compilazione programma

Sto studiando il C da alcune ore,e man mano che vado avanti faccio degli esercizi per ricordarmi meglio il codice ,ma nel caso sotto elencato mi sono bloccato poichè il compilatore mi restituisce un errore;sapreste spiegarmi,per favore,come ultimare bene il codice sotto elencato e magari spiegarmi la motivazione.
La guida che stò studiando è questa :http://www.blacklight.gotdns.org/wik...i_un_programma , proprio nella pagina dove ho trovato questo codice:

Codice:
int i=0;
 
while (i<10)  {
  printf ("Valore di i: %d\n",i);
  i++;
}
Io ho provato a completarlo in diversi modi (naturalmente includendo le librerie etc...) ma senza riuscire a farlo funzionare.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 21:42   #2
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
Codice PHP:
#include<stdio.h>
#include<stdlib.h>

int main() {
    
int i 0;

    while (
10) {
        
printf("Valore di i: %d\n"i);
        
i++;
    }
    return 
0;

Il pezzo i sorgente che hai postato è corretto, probabilmente hai commesso qualche errore altrove. Ti ho incollato qua sopra un sorgente che compila senza problemi
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 22:20   #3
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
grazie il mio errore era quello di omettere le parentesi graffe dopo il main

Ultima modifica di rikkaidd : 15-12-2009 alle 22:28.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 22:24   #4
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
... io lo potrei pure controllare, ma tu posta tutto, librerie e main compreso, e di che errore ti da ... se stai sul generico non ne esci fuori
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 23:00   #5
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Grazie ho risolto,scusa se approfitto della tua disponibilità ma se io vorrei fare un programmino dove una variabile non è rappresentata solo da un numero o lettera ma bensi dalla parola ciao come dovrei fare?(anche perchè char si limita a 8 bite):
es: il valore della variabile è ciao,
output a video:- salutami
imput :ciao //bene !termina il programma ma nel caso la risposta fosse diversa da ciao si ripete il prinft che scrive a schermo salutami

Penso che scrivere una cosa del genere non abbia significato:
Codice:
#include<stdio.h> 

 main() { 
 char n; 
 while (n!=ciao)  {
  printf ("salutami : ");
  scanf ("%s",&n);
 
  printf ("Numero inserito: %s\n",n);
 }
}

Ultima modifica di rikkaidd : 15-12-2009 alle 23:11.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 23:06   #6
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
vai al capitolo stringhe della guida
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 15-12-2009, 23:32   #7
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Ok ho provato questo ma quando metto ciao non chiude il programma
Codice:
#include<stdio.h> 
#include <string.h>

 main() { 
 char d[4];
   while (d!="ciao")  { 
   printf ("salutami : ");
   scanf ("%s",&d);
   printf ("Salutami: %s\d",d);

  } 
    return 0; 
}
io vorrei fare una cosa simile a questo ma con la scritta ciao,ma non ci riesco(usando while)
Codice:
int n; 
 
while (n!=0)  {
  printf ("Inserisci un numero (0 per finire): ");
  scanf ("%d",&n);
 
  printf ("Numero inserito: %d\n",n);
}
ho provato anche così
Codice:
#include<stdio.h> 
#include <string.h>

 main() { 
 char d[4];
   while (d!="ciao")  { 
   printf ("salutami : ");
   scanf ("%s",&"ciao");
   printf ("Salutami: %s\d",d);

  } 
    return 0; 
}

Ultima modifica di rikkaidd : 16-12-2009 alle 00:13.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2009, 01:21   #8
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Come ti è già stato consigliato, devi lavorare sulle stringhe.
Il seguente codice fa ciò che desideri.

Codice:
#include <stdio.h>
#include <string.h>

int main()
{
	char str1[] = "ciao"; /* maniera veloce e comoda per dichiarare una stringa*/
	char str2[10];

	while (strcmp(str1,str2)) /* Compara le due stringhe */
	{
		system("clear"); /* clear per UNIX, cls per microsoft */
		printf("Salutami! ");
		scanf ("%s",str2);
	}

	return 0;
}
Ho utilizzato la funzione strcmp, che compara due stringhe e restituisce zero se sono uguali, un valore più grande di zero se sono disuguali.
La funzione è definita nella libreria string.h, che quindi va inclusa.

Di seguito qualche rimando teorico.
Stringhe
Funzione strcmp

In ogni caso, per qualsiasi dubbio chiedi pure.
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2009, 01:44   #9
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Grazie, come ho detto prima stò studiando il C da poche ore e non conosco nessun altro linguaggio di programmazione
A pensare che dopo devo passare alla OOP
Pero questo funzionava;infatti una volta scritto ciao e fatto invio il programma si chiudeva...solo perchè andava in errore
Codice:
#include<stdio.h> 
#include <string.h>

 main() { 
 char d[4];
   while (d!="ciao")  { 
   printf ("salutami : ");
   scanf ("%s",&"ciao");
   printf ("Salutami: %s\d",d);

  } 
    return 0; 
}
Sicuramente un libro e mille volte meglio di un manuale in internet, ma sto studiando il c come punto di partenza per riuscire a capirci qualcosa del c++ e del visul basic.
Conosco l'html (questo si impara in due ore per fortuna!) vorrei imparare anche il javascript e il php

Ultima modifica di rikkaidd : 16-12-2009 alle 01:55.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2009, 01:46   #10
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Se posso consigliarti un libro, usa IL LINGUAGGIO C di Kernighan - Ritchie
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2009, 22:48   #11
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Anche se và off-topic,e sperando di non fare incavolare i moderatori,vi chiedo ancora aiuto.. (era meglio che mettevo come titolo :aiuto sono un n00b...)
è proprio vero studiare da una guida internet non è il massimo!
C'è più di una cosa che non sono riuscito a capire se si può fare o meno;
per spiegarmi meglio porterò come esempio un programma scritto su due piedi:
Codice:
#include <stdio.h>

int main () {
int a;
printf ("Scrivi un numero compreso tra 1 e 10: ");
scanf("%d",&a);

if ((a>0) && (a<10))
printf ("bravo");
else{
printf("Idiota scrivi un numero compreso tra 1 e 10: ");
scanf("%d",&a);
if ((a>0) && (a<10))
printf ("bravo");
else
printf("Suicidati ");
}
}
ok ,funziona! ma se al posto della terza possibilità "suicidati", vorrei che ogni volta che il numero messo a imput da tastiera non soddisfa la condizione:
Codice:
 if ((a>0) && (a<10))
si ripetesse sempre il ciclo :
Codice:
else{
printf("Idiota scrivi un numero compreso tra 1 e 10: ");
scanf("%d",&a);
anche per un numero infinito di volte, come dovrei fare?

L'altra cosa che non ho capito è la seguente:
Codice:
#include <stdio.h>

int main () {
int a[] = {2,4,6,7,8,9};
int b;
printf ("Scrivi un numero compreso tra 1 e 10: ");
scanf("%d",&b);
if (b==a){
printf ("a e b sono uguali");
}else
printf("a e b sono diversi");
}
perchè non funziona?

Conosceto qualche sito con esercizi in c che non implichino la conoscenza "ENIGMI E PARADOSSI MATEMATICI" per essere risolti?
No scherzo,cmq qualche esercizio un pò più facile ,basilare...

Ultima modifica di rikkaidd : 17-12-2009 alle 23:01.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 00:35   #12
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Un consiglio... usa l'indentazione per migliorarne la leggibilità del codice.

Poi, per il primo codice non hai che da usare un ciclo iterativo a tua scelta. Io azzarderei un while con una variabile k di controllo.

Codice:
#include <stdio.h>

int main()
{
	int a;
	printf ("Scrivi un numero compreso tra 1 e 10: ");
	
	int k;
	while (k)
	{
		scanf("%d",&a);
		if (a<0 || a>10)
			printf("Idiota, inserisci un numero compreso tra 1 e 10: ");
		else
			printf("Bravo!");
                        break;
	}
	
	return 0;
}
Il secondo ora lo leggo

Ultima modifica di masteryuri : 18-12-2009 alle 01:03.
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 00:42   #13
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Ecco, non è chiaro quello che vuoi fare con il secondo codice.

La variabile a è un puntatore che contiene l'indirizzo del vettore.
Infatti gcc risponde così quando si cerca di compilare:
Quote:
file.c:8: warning: comparison between pointer and integer
Se ti spieghi meglio ti dico come fare...
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 00:44   #14
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 masteryuri Guarda i messaggi
Codice:
#include <stdio.h>
#include <string.h>

int main()
{
	char str1[] = "ciao"; /* maniera veloce e comoda per dichiarare una stringa*/
	char str2[10];

	while (strcmp(str1,str2)) /* Compara le due stringhe */
	{
		system("clear"); /* clear per UNIX, cls per microsoft */
		printf("Salutami! ");
		scanf ("%s",str2);
	}

	return 0;
}
Sarebbe meglio un do - while perché fare una strcmp su un stringa non terminata potrebbe portare a risultati non prevedibili. In questo caso non ci sono problemi perché il buffer allocato è più grande di "ciao", ma se fosse più piccolo potresti ad esempio avere un successo quando in realtà non ci sarebbe.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 00:54   #15
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Puoi mostrarmi?
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 00:59   #16
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Quote:
Originariamente inviato da masteryuri Guarda i messaggi
Un consiglio... usa l'indentazione per migliorarne la leggibilità del codice.

Poi, per il primo codice non hai che da usare un ciclo iterativo a tua scelta. Io azzarderei un while con una variabile k di controllo.

Codice:
#include <stdio.h>

int main()
{
	int a;
	printf ("Scrivi un numero compreso tra 1 e 10: ");
	
	int k;
	while (k)
	{
		scanf("%d",&a);
		if (a<0 || a>10)
			printf("Idiota, inserisci un numero compreso tra 1 e 10: ");
		else
			printf("Bravo!");
                        break;
	}
	
	return 0;
}
Il secondo ora lo leggo
per l'identazione che ti devo dire...
sono una appassionato di modding game e riesco a leggere meglio il codice quando è più compatto possibile,e a maggior ragione quando uno spazio in più è uguale ad un errore

Ok ,questo dice bravo però se metti un numero che non soddisfa if il programma va male.

Ultima modifica di rikkaidd : 18-12-2009 alle 02:06.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 01:01   #17
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
Beh qual è il problema, ora una struttura logica c'è. Puoi inserire anche queste finezze.
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 01:13   #18
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 masteryuri Guarda i messaggi
Puoi mostrarmi?
In realtà, pensandoci bene, potrebbe essere un problema anche in questo caso.
Mostrartelo è difficile perché dipende da quello che c'è prima nelle locazioni di memoria riservate per il secondo vettore.

Ad esempio:
Codice:
	char str1[] = "ciao"; /* maniera veloce e comoda per dichiarare una stringa*/
	char str2[10];

	while (strcmp(str1,str2)) /* Compara le due stringhe */
	{
           /*qui c'è qualcosa*/
	}
Mettiamo che in str2 ci sia casualmente "ciao" (ricordo che non tutti i compilatori, azzerano o settano ad un valore preciso la memoria allocata staticamente, quello che c'è dipende da quello che c'era stato scritto prima), in quel caso si esce subito dal while senza mai eseguire quello che c'è all'interno.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2009, 01:20   #19
rikkaidd
Member
 
L'Avatar di rikkaidd
 
Iscritto dal: Nov 2008
Messaggi: 230
Avevo chiesto aiuto anche in un altroforum dove Style { HdS619 } mi ha risposto cosi:

Rikkaidd ha scritto:

ok ,funziona! ma se al posto della terza possibilità "suicidati", vorrei che ogni volta che il numero messo a imput da tastiera non soddisfa la condizione:Codice:
Codice:
\* if ((a>0) && (a<10))*/
si ripetesse sempre il ciclo :
Codice:
Codice:
else{ 
printf("Idiota scrivi un numero compreso tra 1 e 10: "); 
scanf("%d",&a);
anche per un numero infinito di volte, come dovrei fare?

risposta:

Codice:
 

#include <stdio.h> 

int main (void) 
{ 
 int j; 
  
 do { 
   printf ("Inserisci un numero tra 1 e 10: "); 
   scanf ("%d", &j); 
 } while ( j < 1 || j > 10 ); 
  
 printf ("Bravo.\n"); 
  
 return 0; 
}

Rikkaidd ha scritto:

L'altra cosa che non ho capito è la seguente:
Codice:
Codice:
#include <stdio.h> 

int main () { 
int a[] = {2,4,6,7,8,9}; 
int b; 
printf ("Scrivi un numero compreso tra 1 e 10: "); 
scanf("%d",&b); 
if (b==a){ 
printf ("a e b sono uguali"); 
}else 
printf("a e b sono diversi"); 
}
perchè non funziona?

Conoscetre qualche sito con esercizi in c che non implichino la conoscenza di "ENIGMI E PARADOSSI MATEMATICI" per essere risolti?

risposta:

non puoi confrontare un int con un int * ( int array[] equivale a int * ) quindi dovresti fare un ciclo che confronta ogni elemento di a con b

LA COSA STRANA E' CHE HO CAPITO!!!!

Ultima modifica di rikkaidd : 18-12-2009 alle 06:03.
rikkaidd è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Nella capsula Orion di Artemis II ci sar...
L'immagine del mese del telescopio spazi...
Heatspreader originale al posto del wate...
Ubisoft ha definitivamente archiviato Wa...
Motivair by Schneider Electric presenta ...
Un dissipatore che non richiede energia ...
Con Maia 200 Microsoft alza l'asticella ...
La Cina impone requisiti anche per lo st...
Apple lancia AirTag aggiornato: range es...
Microsoft risolve i blocchi di Outlook: ...
OpenAI verso il disastro finanziario? L’...
X nei guai: l'UE indaga sui pericoli del...
Caso Corona-Signorini: il giudice blocca...
470 petaFLOPS con una frequenza di 56 GH...
WhatsApp: abbonamento per rimuovere la p...
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: 00:31.


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