Jump to content
hitme

Functie C

Recommended Posts

  • Active Members
Posted (edited)

Nu prea imi vine nici o idee in minte fara a folosi pointeri. Si chiar daca ar exista, cea cu pointeri este cea mai rapida si practica. Revin cu edit cand imi vine vreo idee :)

//Edit:


#include<stdio.h>
void main()
{
int a,b,c;
printf(" Introdu' valorile pt a, b si c \n");
scanf("%d %d %d",&a,&b,&c);

printf("\n a = %d",a);
printf("\n b = %d",;
printf("\n c = %d",c);

a=a+b+c;
b=a-b-c;
c=a-b-c;
a=a-b-c;

printf("\n Dupa interschimbare -");
printf("\n a = %d",a);
printf("\n b = %d",;
printf("\n c = %d",c);
getch();
}

Edited by MrGrj
  • Active Members
Posted
Foloseste o a treia variabila.

De exemplu:

aux=a;

a=b;

b=aux;

unde a si b sunt numerele pe care le schimbi

// Sper ca nu sunt prost, scuza ma daca sunt.

Asta e pentru interschimbarea a doua variabile. Voia pt. trei

  • Active Members
Posted (edited)

Ai doua modele de raspunsuri. Implementezi ce ti-am dat eu sau @Ganav intr-o functie. Iti ia maxim 2 minute.

Uite aici ca referinta. Postezi codul si incercam sa te indrumam. Sa vedem cum gandesti.

// Ca sa le sortezi le bagi pur si simplu intr-un vector si apoi iti alegi metoda prin care sa o faci (sa le sortezi) :)

Edited by MrGrj
Posted

@MrGrj vorbesti de ordonare? am editat post-ul ca eram cu capul in nori cand scriam, vreau ordonarea crescatoarea a 3 numere, intr-o functie, fara sa aplic pointeri. (daca e posibil)

am incercat cu o serie de if-uri, dar nu pot returna valorile

  • Active Members
Posted
@MrGrj vorbesti de ordonare? am editat post-ul ca eram cu capul in nori cand scriam, vreau ordonarea crescatoarea a 3 numere, intr-o functie, fara sa aplic pointeri. (daca e posibil)

am incercat cu o serie de if-uri, dar nu pot returna valorile

O sa ma ghidez un pic dupa solutia data de Ganav dar functia te las pe tine sa o implementezi si sa o postezi:


if (a > c)
swap(a, c)

if (a >
swap(a,

//Acum cel mai mic element este primul. Le verificam pe al doi-lea si al trei-lea

if (b > c)
swap(b, c);

Asta daca vrei cu if-uri :)

  • Active Members
Posted (edited)

Daca imi spui exact ce ai de gand sa faci, te ajut. Ai o functie , si vrei sa ordonezi niste numere fara a folosi pointeri ?


#include <stdio.h>

void sortare(long [], long);

int main()
{
long a[100], n, c, d, swap;

printf("Introdu nr elementelor pe care vrei sa le sortezi:\n");
scanf("%ld", &n);

printf("Introdu %ld numere(integeri)\n", n);

for (c = 0; c < n; c++)
scanf("%ld", &a[c]);

sortare(a, n);

printf("Lista numerelor sortate in ordine crescatoare:\n");

for ( c = 0 ; c < n ; c++ )
printf("%ld\n", a[c]);

return 0;
}

void sortare(long list[], long n)
{
long c, d, t;

for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (list[d] > list[d+1])
{
/* Interschimbarea */

t = list[d];
list[d] = list[d+1];
list[d+1] = t;
}
}
}
}

Nota:

Algoritmul const? în parcurgerea tabloului de mai multe ori, pân? când devine ordonat. La fiecare pas se compar? dou? elemente al?turate. Dac? ai > ai + 1, (i = 1, 2, ..., n – 1), atunci cele dou? valori se interschimb? între ele.

Edited by MrGrj

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...