Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-06-2008, 19:20   #1
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
[C]-Domande da principiante

Visto ke ho appena iniziato a programmare in C posterò i miei eventuali dubbi su qst topic.


E' giusto secondo voi qst programma??

#include <stdio.h>
main ()
{
int sb,cn,ct,c;
sb=0; /* contatore spazi bianchi */
cn=0; /* contatore spazi newline*/
ct=0; /* contatore caratteri tabulazioni */
while ((c=getchar()) !=EOF)
if(c == ' ')
++sb;
printf("%d\n", sb);
if(c== '\n')
++cn;
printf("%d\n", cn);
if(c== '\t')
++ct;
printf("%d\n", ct);

}


Il primo printf funzia alla perfezione gli altri 2 danno sempre valore 0 in qualunque caso....c'è qualcuno ke sa aiutarmi??
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 20:29   #2
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
mancano le graffe del while.. esegue solo il primo if
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 20:37   #3
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Avevo provato a metterle xò mettendole quando scrivo qualcosa e do l'invio escono fuori una serie di numeri uno sotto l'altro.


Secondo voi x scrivere il seguente programma come dovrei agire??

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2008, 20:45   #4
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
no mettile ma dentro le graffe lascia solo gli incrementi dei counter.. le stampe mettile fuori ovviamente..
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2008, 00:32   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Intanto usa il tag code, così mantieni l'indentazione anche qui sul forum. Fatto questo mettere le graffe è semplice, basta che ce ne sia una aperta prima di un rientro ed una chiusa alla fine dello stesso rientro (sempre se l'hai indentato correttamente). Le graffe sono superflue solo quando il blocco indentato è di una sola istruzione.

Seconda cosa, per poter replicare ciò che leggi da tastiera sei sulla giusta strada, c'è però un problema, nelle printf "%d" indica che vuoi stampare un intero, per questo ottieni dei numeri, se vuoi vedere i caratteri ascii corrispondenti devi usare "%c"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 22:51   #6
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
C'è qualcuno in grado di darmi un input a qst problema:

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....

Praticamente se trovo 2 spazi bianchi vicini devo eliminarne 1 e stamparne solo 1.
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 23:06   #7
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
Visto ke ho appena iniziato a programmare in C posterò i miei eventuali dubbi su qst topic.

un input a qst problema
Di solito sui forum si pone una domanda per thread ed è buona norma evitare le abbreviazioni da SMS, qui non si pagano i caratteri in eccesso e l'unico effetto di contrarre le parole è peggiorare la leggibilità del post.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 23:15   #8
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da 88MIKI88 Guarda i messaggi
C'è qualcuno in grado di darmi un input a qst problema:

Scrivere un programma i cui dati in uscita replichino i dati in ingresso sostituendo xò una stringa di 1 o più spazi bianchi con uno spazio singolo....

Praticamente se trovo 2 spazi bianchi vicini devo eliminarne 1 e stamparne solo 1.
Un aiutino, il problema è molto semplice:
Immagina di avere due stati:
A-nessuno spazio bianco letto
B-letto uno spazio bianco

se sei in A leggendo un carattere non spazio resti in A e stampi il carattere letto, leggendo uno spazio vai in B e stampi il primo spazio.
da B leggendo uno spazio resti in B senza stampare nulla, leggendo un carattere passi in A e stampi il carattere.

Puoi ricreare questa FSA in questo modo:
Codice:
...
while(c = getCh()){
 if(c==' '){
  print c;
  while(c == ' '){//Scarto i ' ' in eccesso
   c = getCh();
   }
  }
  print c;
}
...
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2008, 23:34   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da wisher Guarda i messaggi
Un aiutino, il problema è molto semplice:
Immagina di avere due stati:
A-nessuno spazio bianco letto
B-letto uno spazio bianco

se sei in A leggendo un carattere non spazio resti in A e stampi il carattere letto, leggendo uno spazio vai in B e stampi il primo spazio.
da B leggendo uno spazio resti in B senza stampare nulla, leggendo un carattere passi in A e stampi il carattere.

Puoi ricreare questa FSA in questo modo:
Codice:
...
while(c = getCh()){
 if(c==' '){
  print c;
  while(c == ' '){//Scarto i ' ' in eccesso
   c = getCh();
   }
  }
  print c;
}
...
Per me sto C è arabo.. ma come vi convincete??
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 16:21   #10
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
#include<stdio.h>

main ()
{
int c;
while (c=getchar()!=EOF)
{
if(c== ' ') {
printf ("%c", c);

while (c==' ')
c=getchar();
}
printf("%d",c);
}

}

Il codice è qst e come sintassi c'è visto ke il debugger nn dà errori xò il programma stampa solo 1....come mai????
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 16:35   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Usa il tag CODE, e nell'ultima printf stai ancora usando %d
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 16:49   #12
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Sta di fatto ke nn esce ankora.......escono delle faccine....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 17:16   #13
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
C'è un errore nel while, dovrebbe essere:
Codice:
while ((c=getchar())!=EOF)
Senza le parentesi mette in "c" il risultato del confronto "getchar()!=EOF"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2008, 19:42   #14
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Ultimo esercizio di questo capitolo finalmente!

Scrivere un programma in cui i dati in ingresso siano uguali a quelli in uscita sostituendo però \b ad ogni backspace, \t ad ogni tabulazione e \\ ad ogni backslash....

Francamente quando ho letto il testo mi sono detto "questo esercizio è una cazzata!!"

Poi invece analizzandolo x bene non è così o almeno c'è solo un piccolo problema nelle stampe.... per stampare \b, \t, \\ come posso fare?? All'inizio ho pensato di andare a vedere se c'è un codice corrispondente in ASCII xò nn so nn mi sembra la strada giusta.....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 00:59   #15
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
Non esiste un carattere specifico per stampare "\b", "\t" e "\\", semplicemente li devi stampare così come stringhe costanti. Occhio però che se scrivi:
Codice:
printf("\t");
Non verrà stampato "\t" ma un carattere di tabulazione, per stampare "\t" devi aggiungere una '\' prima:
Codice:
printf("\\t");
E così anche per le altre stringhe:
Codice:
printf("\\b");
printf("\\\\");
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 15:05   #16
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Sta di fatto che con i backslash non funziona.....se tu fai:

if ( c == '\') il compilatore impazzisce e ti inizia a trovare errori.

per farlo andare devo fare:

if (c=='\\') {
printf("\\\\")
}

in cui vengono stampati 3 backslash al posto di 2....c'è qualcuno che mi sa dire il perchè?
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 17:03   #17
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Perché il backslash è un carattere di escape, se tu scrivi \' viene interpretata come una virgoletta e non come l'apice finale che racchiude un carattere, quindi per il compilatore c'è una sequenza mai terminata (ecco il perché degli errori).

Probabilmente c'è una stampa in più, se vedi 3 backslash (o la prima è quella ricevuta in input).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2008, 17:43   #18
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Risolto il problema del backslash ne avevo messo uno in più :P

Sta di fatto che devo ancora risolvere quello del backspace

io ho scritto:

if (c == '\b') {
printf("\\b");

la sintassi è giusta soltanto che non funziona come dovrebbe.....
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2008, 01:26   #19
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2782
La risposta molto probabilmente è qui: LINK
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Dreame H15 Mix: la soluzione 7-in-1 per ...
AirPods Pro 3 in forte sconto su Amazon:...
36 offerte Amazon, molte appena partite:...
2 caricatori multipli eccezionali: da 28...
OLED e 360 Hz a un prezzo senza preceden...
Roborock Q10 S5+ a un prezzo molto conve...
Upgrade PC a prezzo ridotto: le migliori...
Sono i 6 smartphone migliori su Amazon: ...
Google Pixel 9a a 361€, mai così ...
Super sconti sugli spazzolini Oral-B, an...
Aspira a 6000Pa, lava bene, costa 139€: ...
Nuove scorte: torna il portatile tuttofa...
Toyota usa giochi e premi per spingere i...
HarmonyOS ha raggiunto la soglia di sopr...
Le offerte Amazon più convenienti...
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: 13:41.


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