Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-12-2011, 14:51   #1
Giangiui
Junior Member
 
Iscritto dal: Dec 2011
Messaggi: 24
[C] if con stringa char

Salve, io devo fare questo esercizio senza ricorrere a procedure :
"Scrivere un programma che simuli un salvadanaio. L'utente puo' inserire e prelevare soldi. Visualizzare salvadanaio vuoto se non ci sono soldi. Il numero di operazioni di inserimento e prelievo sono decise dall'utente."

Io ho sviluppato questo codice, ma mi da vari errori, cos'è che non va ?

#include <stdio.h>
#include <stdlib.h>

int main () {
char scelta;
int totale,i,prelievo,deposito,operazioni;
printf ("quante operazioni vuoi fare");
scanf ("%d", &operazioni);
printf ("quant'e' il totale?");
scanf ("%d",&totale);
for (i=0;i<operazioni;i++) {
printf ("%d",i);
printf ("cosa vuoi fare?");
scanf ("%c",&scelta);
fflush (stdin);
if (scelta == "prelievo") {
printf ("quanto vuoi prelevare");
scanf ("%d",&prelievo);
totale = totale - prelievo;
}
if (scelta == "deposito") {
printf ("quanto vuoi depositare");
scanf ("%d",&deposito);
}}
printf ("%d",totale);
system ("Pause");
}

Non ho messo l'if per il salvadanaio vuoto :S
Giangiui è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2011, 18:08   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13065
Premesso che è meglio usare i tag CODE e indentare un po' il codice:

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

int main () {
   char scelta;
   int totale,i,prelievo,deposito,operazioni;
   printf ("quante operazioni vuoi fare");
   scanf ("%d", &operazioni);
   printf ("quant'e' il totale?");
   scanf ("%d",&totale);

   for (i=0;i<operazioni;i++) {
      printf ("%d",i);
      printf ("cosa vuoi fare?");
      scanf ("%c",&scelta);
      fflush (stdin);
      if (scelta == "prelievo") { 
         printf ("quanto vuoi prelevare");
         scanf ("%d",&prelievo);
         totale = totale - prelievo;
      }

      if (scelta == "deposito") {
          printf ("quanto vuoi depositare");
          scanf ("%d",&deposito);
      }
   }
   printf ("%d",totale);
   system ("Pause");
}
1) scelta non è una stringa, è un carattere singolo. Una stringa è un array di caratteri.

2) il confronto tra stringhe non si fa con l'operatore ==, ma con la funzione strcmp.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2011, 09:59   #3
Giangiui
Junior Member
 
Iscritto dal: Dec 2011
Messaggi: 24
1) hai ragione, me n'ero dimenticato
2) cavolo, strcmp ! e come si implementa in questo caso?

Ultima modifica di Giangiui : 18-12-2011 alle 10:03.
Giangiui è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2011, 10:24   #4
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da Giangiui Guarda i messaggi
1) hai ragione, me n'ero dimenticato
2) cavolo, strcmp ! e come si implementa in questo caso?
nel tuo caso, non puoi confrontare una stringa con un carattere.

Puoi al massimo inizializzare "scelta" come stringa e fare una sottospecie di menu, a quel punto fai:

Codice:
if(strcmp(scelta,deposito)==0)

ps: ricordati di inserire la libreria :
Codice:
#include <string.h>
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03

Ultima modifica di tecno789 : 18-12-2011 alle 10:36.
tecno789 è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2011, 11:27   #5
Giangiui
Junior Member
 
Iscritto dal: Dec 2011
Messaggi: 24
Quote:
Originariamente inviato da tecno789 Guarda i messaggi
nel tuo caso, non puoi confrontare una stringa con un carattere.

Puoi al massimo inizializzare "scelta" come stringa e fare una sottospecie di menu, a quel punto fai:

Codice:
if(strcmp(scelta,deposito)==0)

ps: ricordati di inserire la libreria :
Codice:
#include <string.h>
grazie dell'aiuto, ora provo
Giangiui è offline   Rispondi citando il messaggio o parte di esso
Old 18-12-2011, 11:36   #6
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
Quote:
Originariamente inviato da Giangiui Guarda i messaggi
grazie dell'aiuto, ora provo
se ti posso dare una mano, io l'ho fatto così :

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


void menu();
int main () {
   char scelta[N];
   char prelievo[N]="prelievo";
   char deposito[N]="deposito";
   int totale,i,operazioni,pre,dep;
   printf ("quante operazioni vuoi fare");
   scanf ("%d", &operazioni);
   printf ("quant'e' il totale?");
   scanf ("%d",&totale);

   for (i=0;i<operazioni;i++) {
      printf ("%d",i);
      printf ("cosa vuoi fare?");
      menu();
      scanf ("%s",scelta);
      fflush (stdin);
      if (strcmp(scelta,prelievo)==0) 
      {
         if(totale==0){
                       printf("Non c'e' niente da prelevare \n");
                       break;
                       }
         printf ("quanto vuoi prelevare");
         scanf ("%d",&pre);
         totale = totale - pre;
      }

      if (strcmp(scelta,deposito)==0) {
          printf ("quanto vuoi depositare");
          scanf ("%d",&dep);
          totale = totale + dep;
      }
   }
   printf ("%d \n",totale);
   system ("Pause");
   return 0;
}

void menu()
{
     printf("\nScrivere prelievo(per prelevare) o deposito(per depositare) \n");
}
ovviamente esistono modi migliori e molto meglio ottimizzati, a partire dallo switch-case che in questo caso ti avrebbe aiutato parecchio!
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03
tecno789 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Windows 11 26H2 gira con appena 128 MB d...
GPT-6.2 Astra compare in Codex, Claude F...
Record assoluto per Linux 7.4: quasi mez...
Datacenter “standard” esonerato dalla va...
Occhio ai consumi: nuovi limiti condivis...
Ericsson ISAC System, la tecnologia per ...
Comprano processori solo per gettarli: l...
Canva lancia Affinity per iPad: sketch, ...
Revolut abbandona OpenAI e Anthropic com...
Xbox Game Pass, tante novità in arrivo i...
Un Googlebook in formato Surface Pro: Le...
Windows 11 non permetterà mai di spostar...
Snowflake porta gli agenti IA dentro il ...
SUSE taglia circa 190 persone, e il CEO ...
Apple Watch Series 12, ribasso di 200€ s...
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: 17:43.


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