tonystrong
16-09-2007, 15:57
domanda:
1)perchè non gira?
2) perchè non avviene lo scambio dei valori? se acquisisco 10 e 20 con le scanf?
#include<stdio.h>
void scambia(int a, int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
void main()
{
int num1,num2;
printf("Inserisci numero: ");
scanf("%d", &num1);
fflush(stdin);
printf("Inserisci numero: ");
scanf("%d", &num2);
fflush(stdin);
scambia(num1,num2);
printf("num1=%d, num2=%d",num1,num2);
getchar();
}
Soluzione:
#include<stdio.h>
void scambia(int *a, int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void main()
{
int num1,num2;
printf("Inserisci numero: ");
scanf("%d", &num1);
fflush(stdin);
printf("Inserisci numero: ");
scanf("%d", &num2);
fflush(stdin);
scambia(num1,num2);
printf("num1=%d, num2=%d",num1,num2);
getchar();
}
1) lo compilo con dev-c e ugualmente il programma non gira e non capisco il perchè
2)affinche avvenga lo scambio dei valori cioè
INPUT:num1=10 e num2=20
OUTPUT:num1=20 e num2=10
utilizzando una procedura io devo per forza utilizzare lo scambio dei parametri per indirizzo? perchè il programma non dovrebbe effettuare lo scambio con la prima versione e ha bisogno dei puntatori?
1)perchè non gira?
2) perchè non avviene lo scambio dei valori? se acquisisco 10 e 20 con le scanf?
#include<stdio.h>
void scambia(int a, int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
void main()
{
int num1,num2;
printf("Inserisci numero: ");
scanf("%d", &num1);
fflush(stdin);
printf("Inserisci numero: ");
scanf("%d", &num2);
fflush(stdin);
scambia(num1,num2);
printf("num1=%d, num2=%d",num1,num2);
getchar();
}
Soluzione:
#include<stdio.h>
void scambia(int *a, int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
void main()
{
int num1,num2;
printf("Inserisci numero: ");
scanf("%d", &num1);
fflush(stdin);
printf("Inserisci numero: ");
scanf("%d", &num2);
fflush(stdin);
scambia(num1,num2);
printf("num1=%d, num2=%d",num1,num2);
getchar();
}
1) lo compilo con dev-c e ugualmente il programma non gira e non capisco il perchè
2)affinche avvenga lo scambio dei valori cioè
INPUT:num1=10 e num2=20
OUTPUT:num1=20 e num2=10
utilizzando una procedura io devo per forza utilizzare lo scambio dei parametri per indirizzo? perchè il programma non dovrebbe effettuare lo scambio con la prima versione e ha bisogno dei puntatori?