第六周测试补交-sumN

测试内容:1-N求和

实验代码:

#include
#include
#include
#define MAX     1000000000    //整数范围 1 ~ MAX
#define N       100           //创建N 个子线程求和
#define AVE     (MAX/N)       //每个子线程处理的整数个数
long long     *sum = NULL;    //保存各个子线程计算的结果
//获取当前时间
double get_time()
{    
    struct timeval t;   
    gettimeofday(&t,NULL);   
    return t.tv_sec + t.tv_usec/1000000.0;
}
//求和子线程
void* sum_work(void* arg)
{    
    int n = (int)arg;  //第n部分    
    long long start = n*AVE+1;    
    long long end = start + AVE -1;    
    long long i;    
    sum[n] = 0;   
    //计算start ~ end 范围的整数和   
    for(i=start; i <= end;i++)    
    {        
        sum[n] = sum[n] + i;    
    }    
    pthread_exit(0);
}
int main()
{    
    double         t1,t2;    
    pthread_t      *pthread_id = NULL; //保存子线程id    
    int            i;    
    long long      result = 0;         //总和    
    pthread_id = (pthread_t*)malloc(N * sizeof(pthread_t));   
    sum  = (long long*)malloc(N * sizeof(long long));
    //开始计算   
    t1 = get_time();    
    //创建N个子线程   
    for(i=0;i

结果截图:
第六周测试补交-sumN_第1张图片

你可能感兴趣的:(第六周测试补交-sumN)