我寫了一個程序,它從用戶獲取一些數字,然後允許輸入數字,然後創建兩個線程來計算總和,另一個來計算Avg,但給出數字後程序停止並給出錯誤爲什麼?程序停止並且不執行線程爲什麼?
#include<stdio.h>
#include<Windows.h>
#include<stdlib.h>
int count ;
DWORD WINAPI Sum(PVOID s)
{
int *sum=(int *)s;
DWORD c=0;
for(int i=0;i<count;i++)
c+=sum[i];
return c;
}
DWORD WINAPI Avg(PVOID s)
{
int *var=(int *)s;
DWORD avg=0;
avg=(*var/count);
return avg;
}
int main()
{
printf("Enter the number of numbers\n");
scanf("%d",&count);
int *s = (int*)malloc(sizeof(int)*count);
printf("now enter the numbers\n");
for(int i=0;i<count;i++)
scanf("%d",s[i]);
HANDLE t1 , t2;
DWORD id1 , id2 , c1 , c2;
t1 = CreateThread(NULL , 0 , Sum , s , 0 , &id1);
WaitForSingleObject(t1,INFINITE);
GetExitCodeThread(t1 , &c1);
printf("The Sum = %d", c1);
t2 = CreateThread(NULL , 0 , Avg , (PVOID*)&c1 , 0 , &id2);
WaitForSingleObject(t2,INFINITE);
GetExitCodeThread(t2 , &c2);
printf("The AVgerage = %d", c2);
return 0;
}
如果任何人能幫助我將會感恩。 謝謝 因此,T更新程序,現在它的工作,但Avg是錯誤的,這是因爲當我試圖打印它像這樣printf(「AVG =%f \ n」,C2)結果爲零爲什麼?
請在此問題上添加語言標籤。我假設C++? – Gray