The Secret Santa in C
Last Updated: Dec 09 2016 18:00, Started by
VladBtz
, Dec 06 2016 22:45
·
0
#1
Posted 06 December 2016 - 22:45
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <time.h> int main(void) { srand(time(NULL)); char lista[35][30]; int nr ,ramas,colegi[27],check[27],alege,i; FILE *cheie=fopen("nume.txt","r"); printf("Cati sunteti in clasa?\n"); scanf("%d",&ramas); for(i=1;!feof(cheie);++i) fgets (lista[i], 50, cheie); for( i=1;i<=ramas;++i){ colegi[i]=i; check[i]=0; } printf("\t\t\t CUI O SA II DAI CADOU:\n\n"); srand(time(NULL)); do{ do{ printf("\nce numar esti la catalog? "); scanf("%d", &nr); if(check[nr]<0)printf("ai mai ales odata, urmatorul ...\n"); }while(check[nr]<0); //sigurante do{ alege=rand()%26+1; }while(colegi[alege]==0||alege==nr); colegi[alege]=0; check[nr]=-1; --ramas; printf("ti-a picat: %s \n ",lista[alege]); }while(ramas>=1); } Edited by VladBtz, 06 December 2016 - 22:52. |
#3
Posted 06 December 2016 - 22:56
#4
Posted 06 December 2016 - 23:08
La cât de condensat este scris, putea să fie o singură linie.
|
#5
Posted 06 December 2016 - 23:20
De ce lista e matrice ? De ce srand de 2 ori ? De ce iti trebuie numarul de elevi daca ii citesti oricum dintr-o lista ?
|
#6
Posted 06 December 2016 - 23:29
_-AppleS-_, on 06 decembrie 2016 - 23:20, said:
De ce lista e matrice ? De ce srand de 2 ori ? De ce iti trebuie numarul de elevi daca ii citesti oricum dintr-o lista ? Lista e matrice ca sa retina numele tuturor pe cate o linie. srand e pus din greseala de 2 ori. in loc de citire o sa folosesc ramas = i-1; dupa forul de citire. Evident scot int din for. RedDev, on 06 decembrie 2016 - 23:08, said:
La cât de condensat este scris, putea să fie o singură linie. Ai dreptate, o sa ma apuc acum sa citesc niste articole despre indentare. |
#8
Posted 07 December 2016 - 08:51
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <time.h> int main(void) { srand(time(NULL)); char lista[35][30]; int nr ,ramas,colegi[27],check[27],alege,i; FILE *cheie=fopen("nume.txt","r"); for(i=1;!feof(cheie);++i) fgets (lista[i], 50, cheie); ramas=i-1; for( i=1;i<=ramas;++i){ colegi[i]=i; check[i]=0; } printf("\t\t\t CUI O SA II DAI CADOU:\n\n"); do{ do{ printf("\nce numar esti la catalog? "); scanf("%d", &nr); if(check[nr]<0)printf("ai mai ales odata, urmatorul ...\n"); }while(check[nr]<0); do{ alege=rand()%26+1; }while(colegi[alege]==0||alege==nr); colegi[alege]=0; check[nr]=-1; --ramas; printf("ti-a picat: %s \n ",lista[alege]); }while(ramas>=1); } Edited by VladBtz, 07 December 2016 - 08:52. |
#10
Posted 07 December 2016 - 15:53
VladBtz, on 06 decembrie 2016 - 22:56, said:
Este o ironie ? incearca sa implementezi asta [ https://www.youtube-nocookie.com/embed/5kC5k5QBqcc?feature=oembed - Pentru incarcare in pagina (embed) Click aici ] Edited by MarianG, 07 December 2016 - 15:55. |
|
#11
Posted 07 December 2016 - 18:29
E un inceput.
Nu-mi place insa ca intrebi acel numar din catalog. Ai lista de elevi, ti-e suficient pentru a stabili cine cui da cadou. Pasul urmator: fa o aplicatie desktop care sa faca acelasi lucru. Sa contina:
Limbaj: C. API: WinAPI sub Windows sau GTK+ sub Linux. |
#12
Posted 07 December 2016 - 19:35
#13
Posted 07 December 2016 - 19:52
#14
Posted 08 December 2016 - 14:17
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users