Jump to content
hitme

Functie C

Recommended Posts

  • Active Members

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
Link to comment
Share on other sites

  • Active Members

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
Link to comment
Share on other sites

  • Active Members
@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 :)

Link to comment
Share on other sites

  • Active Members

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
Link to comment
Share on other sites

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...