#include
void muuta_lukua(int x);
{
scanf("%d", &x);
printf("Aliohjelmassa: x = %d\n", x 3);
return 0;
}
int main(){
int x;
printf("Anna luku x: ");
scanf("%d", &x);
printf("Pääohjelmassa: x = %d\n", x);
muuta_lukua(x);
printf("Pääohjelmassa: x = %d\n", x);
}
pitäis saada ohjelma tulostamaan seuraavaa:
Anna luku x: 3
Pääohjelmassa: x = 3
Aliohjelmassa: x = 6
Pääohjelmassa: x = 3
void muuta_lukua(int x);
{
scanf("%d", &x);
printf("Aliohjelmassa: x = %d\n", x 3);
return 0;
}
int main(){
int x;
printf("Anna luku x: ");
scanf("%d", &x);
printf("Pääohjelmassa: x = %d\n", x);
muuta_lukua(x);
printf("Pääohjelmassa: x = %d\n", x);
}
pitäis saada ohjelma tulostamaan seuraavaa:
Anna luku x: 3
Pääohjelmassa: x = 3
Aliohjelmassa: x = 6
Pääohjelmassa: x = 3
Vastaukset 4
Vanhimmat
en oikeen ymmärrä mitä yrität tehdä, mutta siis miksi kysyt käyttäjältä lukua myös tuolla muuta_lukua-funktiossa, jos sen tarkoitus on kerta vaan tulostaa luku joka on kolme suurempi kuin sille parametrinä annettu luku? poista scanf-rivi muuta_lukua:sta, niin ohjelma tulostaa sen mitä haluat.
aliohjelman pitäisi kasvattaa lukua kolmella, muut vaiheet näyttävät alkuperäisen luvun.
#include
void muuta_lukua(int *x);
{
printf("Aliohjelmassa: x = %d\n", *x);
*x = *x + 3;
}
int main(){
int x;
printf("Anna luku x: ");
scanf("%d", &x);
printf("Pääohjelmassa: x = %d\n", x);
muuta_lukua(&x);
printf("Pääohjelmassa: x = %d\n", x);
return 0;
}
Tai
int muuta_lukua(int x);
{
printf("Aliohjelmassa: x = %d\n", x);
return x + 3;
}
kutsu
x = muuta_lukua(x);
#include
void muuta_lukua(int *x);
*x=*x+3;
printf("Aliohjelmassa: x = %d\n", *x);
int main()
{
int x;
printf("Anna luku x: ");
scanf("%d", &x);
printf("Pääohjelmassa: x = %d\n", x);
muuta_lukua(&x);
printf("Pääohjelmassa: x = %d\n", x);
}
Mikä tässä on väärin kun pitäis tallentaa tuo arvo tuohon muuttujaan kun siihen lisätään 3, tuolla aliohjelmassa?