View Full Version : un altro aiuto sempre per il linguaggio c++
Latinman83
22-10-2006, 16:34
chi utilizza deve-c++? qundo utilizzo l'istruzione:
int main(){
int a;int b; int s;
scanf("inserisci a:%d\n", &a);
scanf("inserisci b:%d\n", &b);
s=a+b;
printf("%d+%d=%d",a,b,a+b);
getchar();
}
il get char lo utilizzo sul dev per vedere il risultato sul prompt. Il problena sta nel fatto che non riesco ad inserire da tastiera i risultai da me scelti e non mi visualizza la somma, come mai?
e return quando lo posso utilizzare?grazie dell'aiuto. :) e di quelli ricevuti :)
#include <stdio.h>
int main(){
int a;int b; int s;
printf("inserisci a e b:");
scanf("%d %d", &a ,&b);
s=a+b;
printf("%d+%d=%d",a,b,s);
return 0;
}
chi utilizza deve-c++? qundo utilizzo l'istruzione:
int main(){
int a;int b; int s;
scanf("inserisci a:%d\n", &a);
scanf("inserisci b:%d\n", &b);
s=a+b;
printf("%d+%d=%d",a,b,a+b);
getchar();
}
il get char lo utilizzo sul dev per vedere il risultato sul prompt. Il problena sta nel fatto che non riesco ad inserire da tastiera i risultai da me scelti e non mi visualizza la somma, come mai?
e return quando lo posso utilizzare?grazie dell'aiuto. :) e di quelli ricevuti :)No, il modo corretto di usare la scanf è:
#include <stdio.h>
int main (void)
{
int a, b, s;
printf("Inserisci a: ");
scanf("%d", &a);
while(getchar() != '\n');
printf("Inserisci b: ");
scanf("%d", &b);
while(getchar() != '\n');
s=a+b;
printf("%d+%d=%d",a,b,a+b);
getchar();
return 0;
}L'eventuale testo di "prompt" lo devi scrivere con una printf. Inoltre il while-getchar serve per evitare un problema della scanf, che lascia nel buffer il \n.
...poi mi spiegate tutti che fate a fare "s=a+b" se poi nella printf finale...
:D
eheh infatti io l's ce l'avevo messo :D :D
Paco De Luciaaaaa
23-10-2006, 00:30
No, il modo corretto di usare la scanf è:
L'eventuale testo di "prompt" lo devi scrivere con una printf. Inoltre il while-getchar serve per evitare un problema della scanf, che lascia nel buffer il \n.
Più elegantemente secondo me:
#include <stdio.h>
int main (void)
{
int a, b;
printf("Inserisci a: ");
scanf("%d%*c", &a);
printf("Inserisci b: ");
scanf("%d%*c", &b);
printf("%d+%d=%d",a,b,a+b);
getchar();
return 0;
}
giannola
23-10-2006, 13:12
dunque vuoi un programma piccolo ?
#include <stdio.h>
int main (void)
{
int a, b, s;
printf("Inserisci a: ");
scanf("%d", &a);
printf("Inserisci b: ");
scanf("%d", &b);
s=a+b;
printf("%d\n",s);
system("PAUSE");
return 0;
}
Viceversa se vuoi una cosa davvero elegante
#include <stdio.h>
int somma(int,int);
void inserire();
int main ()
{
inserire();
}
void inserire(){
int x=0, y=0;
printf("Inserisci a: ");
scanf("%d", &x);
printf("Inserisci b: ");
scanf("%d", &y);
somma(x,y);
printf("%d\n",somma(x,y));
system("PAUSE");
return 0;
}
int somma(int x,int y){
int s;
s=x+y;
return s;
}
Paco De Luciaaaaa
23-10-2006, 13:24
....
Viceversa se vuoi una cosa davvero elegante
Non mi sebra così elegante... col passaggio dei parametri sì.
#include <stdio.h>
int somma(int *x,int *y); //by reference EDIT
void inserire( int *x, int *y); //by reference
int main ()
{
int a=0,b=0;
inserire(&a,&b);
printf("%d\n",somma(&a,&b));
}
void inserire( int *x, int *y ){
printf("Inserisci a: ");
scanf("%d%*c", x);
printf("Inserisci b: ");
scanf("%d%*c", y);
return;
}
int somma(int *x,int *y){
return *x+*y;
}
Pignolerie veniali :D
giannola
23-10-2006, 13:33
Non mi sebra così elegante... col passaggio dei parametri sì.
#include <stdio.h>
int somma(int x,int y); //by value
void inserire( int *x, int *y); //by reference
int main ()
{
int a=0,b=0;
inserire(&a,&b);
printf("%d\n",somma(a,b));
}
void inserire( int *x, int *y ){
printf("Inserisci a: ");
scanf("%d%*c", x);
printf("Inserisci b: ");
scanf("%d%*c", y);
return;
}
int somma(int x,int y){
return x+y;
}
Pignolerie veniali :D
:nonsifa:
è buona norma mettere il meno possibile nel main.
Paco De Luciaaaaa
23-10-2006, 13:36
:nonsifa:
è buona norma mettere il meno possibile nel main.
Dipende dal modo in cui uno programma... cmq esiste anche qualcosa che si chiama codice ottimizzato ;)
trallallero
23-10-2006, 13:50
:nonsifa:
è buona norma mettere il meno possibile nel main.
minkia c'ha messo 3 istruzioni eh ;)
vabbé scrivere poco nel main ma almeno far capire cosa fa il programma :read:
giannola
23-10-2006, 14:58
minkia c'ha messo 3 istruzioni eh ;)
vabbé scrivere poco nel main ma almeno far capire cosa fa il programma :read:
inizalmente scrivevo tutto nel main poi il mio prof mi ha sputato come un lama fino a farmi perdere quest'abitudine. :D
Perchè diceva, se poi devo cambiare il programma è sufficiente agire nelle singole funzioni, invece che scombussolare tutto il programma.
In quel caso (anche se il programma è piccolo) devo cmq agire sia nella funzione che nel main se ad esempio volessi aggiungere alla somma un terzo numero. ;)
Paco De Luciaaaaa
23-10-2006, 15:02
Ciò che ti ha insegnato il prof è corretto: la modularità aiuta proprio x questo... ma quando devi scrivere codice ottimizzato risparmiare su variabili e stack fa la differenza ;)
trallallero
23-10-2006, 15:47
inizalmente scrivevo tutto nel main poi il mio prof mi ha sputato come un lama fino a farmi perdere quest'abitudine. :D
Perchè diceva, se poi devo cambiare il programma è sufficiente agire nelle singole funzioni, invece che scombussolare tutto il programma.
In quel caso (anche se il programma è piccolo) devo cmq agire sia nella funzione che nel main se ad esempio volessi aggiungere alla somma un terzo numero. ;)
se fosse cosí semplice allora basta scrivere tutto nel main, poi fai una funzione pippo(), tagli e incolli tutto la dentro e chiami pippo() dal main.
Scusa ma se nel main metti il poco che serve per far capire quello che fa il programma non é meglio ? (che poi la modularizzazione é un altro paio di maniche)
per ex (escluso gestione errori etc):
int main()
{
inizializza();
apri();
elabora();
chiudi();
return 0;
}
giá capisci cosa fa.
int main()
{
elabora();
return 0;
}
:wtf: che c'hai guadagnato ? ;)
giannola
23-10-2006, 16:01
int main()
{
inizializza();
apri();
elabora();
chiudi();
return 0;
}
ecco di solito vuole che i programmi li facciamo così.
chi utilizza deve-c++? qundo utilizzo l'istruzione:
int main(){
int a;int b; int s;
scanf("inserisci a:%d\n", &a);
scanf("inserisci b:%d\n", &b);
s=a+b;
printf("%d+%d=%d",a,b,a+b);
getchar();
}
il get char lo utilizzo sul dev per vedere il risultato sul prompt. Il problena sta nel fatto che non riesco ad inserire da tastiera i risultai da me scelti e non mi visualizza la somma, come mai?
e return quando lo posso utilizzare?grazie dell'aiuto. :) e di quelli ricevuti :)
Ma nessuno ha visto che chiedeva un programma in C++ ?
Latinman83: stai usando la libreria di I/O del C !!! Il programma dovrebbe essere qualcosa di simile a questo:
#include <iostream>
using std::cout;
using std::cin;
int somma(int a, int b)
{
return a + b;
}
void inserimento(int &a, int &b)
{
cout << "Parametro A: ";
cin >> a;
cout << "Parametro B: "
cin >> b;
}
int main(void)
{
int a, b;
inserimento(a, b);
cout << somma(a, b);
return 0;
}
@cionci
Mi sa che è LatinMan83 che si confonde tra C++ e C :)
:nonsifa:
è buona norma mettere il meno possibile nel main.
Il che non significa prendere tutto quello che c'è nel main e ficcarlo di sana pianta in una procedura
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.