Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

The Secret Santa in C

- - - - -
  • Please log in to reply
14 replies to this topic

#1
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Posts: 1,702
  • Înscris: 24.09.2014
#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.


#2
Axel2015

Axel2015

    Member

  • Grup: Members
  • Posts: 716
  • Înscris: 10.02.2016
Este un program?

#3
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Posts: 1,702
  • Înscris: 24.09.2014

View PostAxel2015, on 06 decembrie 2016 - 22:52, said:

Este un program?

Este o ironie ?

#4
RedDev

RedDev

    Active Member

  • Grup: Members
  • Posts: 1,935
  • Înscris: 29.10.2014
La cât de condensat este scris, putea să fie o singură linie.

#5
_-AppleS-_

_-AppleS-_

    ✮✮✮✮✮✮✮✮

  • Grup: Senior Members
  • Posts: 4,512
  • Înscris: 09.07.2014
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
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Posts: 1,702
  • Înscris: 24.09.2014

View Post_&#045;AppleS&#045;_, 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.

View PostRedDev, 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.

#7
iulian0512

iulian0512

    Member

  • Grup: Validating
  • Posts: 756
  • Înscris: 03.01.2010
oribila indentarea

#8
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Posts: 1,702
  • Înscris: 24.09.2014
#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.


#9
Dobrin_M

Dobrin_M

    Active Member

  • Grup: Members
  • Posts: 1,528
  • Înscris: 19.02.2015
Nu e mai simplu cu niște bilețele puse într-un bol?

#10
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,444
  • Înscris: 10.08.2005

View PostVladBtz, on 06 decembrie 2016 - 22:56, said:

Este o ironie ?
nu, este o intrebare legitima, pe aria asta expunem produs final, nu coduri

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

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
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:

  • O casuta text in care sunt inserati toti elevii unul sub altul
  • Un buton "Stabileste Secret Santa"
  • Un listview cu 2 coloane in care afisezi cine cui da cadou

Limbaj: C.
API: WinAPI sub Windows sau GTK+ sub Linux.

#12
VladBtz

VladBtz

    Active Member

  • Grup: Members
  • Posts: 1,702
  • Înscris: 24.09.2014
Pentru grafica in Windows aveam biblioteca windows.h ?

View PostDobrin_M, on 07 decembrie 2016 - 14:15, said:

Nu e mai simplu cu niște bilețele puse într-un bol?

E un inceput, inveti sa fac niste chestii. Intr-o zi o sa ajung sa fac si programe mai complexe care sa iti faca vreun lucru "mai simplu".

#13
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,604
  • Înscris: 30.07.2003

View PostVladBtz, on 07 decembrie 2016 - 19:35, said:

Pentru grafica in Windows aveam biblioteca windows.h ?
E una din ele, adica WinAPI.

#14
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,039
  • Înscris: 24.02.2006

View PostVladBtz, on 07 decembrie 2016 - 19:35, said:

....... Intr-o zi o sa ajung sa fac si ....

intr-o zi o sa descoperi threadurile deschise de tine pe aici si o sa te rusinezi vazand ce ai putut posta :)

#15
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,239
  • Înscris: 24.02.2007
theForger's Win32 API Programming Tutorial

Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate