1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <Windows.h>
- #include <malloc.h>
- int n = 10;
- VOID FactrFib(VOID);
- DWORD WINAPI TreadFactr(LPVOID param);
- DWORD WINAPI TreadFib(LPVOID param);
- //DWORD WINAPI Child(LPVOID param) {
- // for (int i = 0; i < 100; i++) {
- // printf("Я дочерний поток и я вывожу значение: %d\n", i);
- // }
- // ExitThread(0);
- //}
- //
- //DWORD WINAPI Child1(LPVOID param) {
- // for (int i = 0; i < 100; i++) {
- // printf("Я другой дочерний поток и я вывожу значение: %d\n", i);
- // }
- // ExitThread(0);
- //}
- int main() {
- /*system("chcp 1251");*/
- /*HANDLE hTread[2];
- hTread[0] = CreateThread(NULL, 0, Child, NULL, 0, 0);
- hTread[1] = CreateThread(NULL, 0, Child1, NULL, 0, 0);*/
- /*for (int i = 0; i < 100; i++) {
- printf("Я основной поток и я вывожу значение: %d\n", i);
- }*/
- /*WaitForMultipleObjects(2, hTread, TRUE, INFINITE);*/
- FactrFib();
- return 0;
- }
- VOID FactrFib(VOID) {
- HANDLE hF[2];
- hF[0] = CreateThread(NULL,0,TreadFactr,NULL,0,0);
- hF[1] = CreateThread(NULL, 0, TreadFib, NULL, 0, 0);;
- WaitForMultipleObjects(2, hF, TRUE, INFINITE);
- }
- DWORD WINAPI TreadFactr(LPVOID param) {
- int f=1;
- for (int i = 0; i <= n; i++) {
- if (i != 0) {
- f *= i;
- }
- printf("Факториал %d = %d\n", i, f);
- }
- ExitThread(0);
- }
- DWORD WINAPI TreadFib(LPVOID param) {
- int f1 = 1;
- int f2 = 1;
- int f = 0;
- for (int i = 0; i <= n; i++) {
- if (i > 2) {
- f = f1;
- f1 = f2;
- f2 += f;
- }
- printf("%d элемент Фибоначи = %d\n", i, f2);
- }
- ExitThread(0);
- }
|