最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

3

2023-06-22 16:04 作者:釋o懷灬  | 我要投稿

//gcc -o heat heat.c -fopenmp

// ./heat 4


#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<time.h>

#include<string.h>

#include<unistd.h>

#include<malloc.h>

#include<omp.h>



int main(int argc,char** argv){

? ??

? ? /*打開文件*/??

? ? FILE* fp = fopen("input.csv", "r");

? ? if (fp == NULL) {

? ? ? ? fprintf(stderr, "fopen() failed.\n");

? ? ? ? exit(EXIT_FAILURE);

? ? }

? ? /*讀取數(shù)據(jù)

? ? 將上方數(shù)據(jù)讀入arry[0][]中,其他以此類推*/

? ? char row[800];

? ? char* token;?

? ? double arry[4][2000];

? ? //fgets是一行一行來讀取csv文件? 讀到row中

? ? for (int i = 0; fgets(row, 80, fp) != NULL; i++) {

? ? ? ? //char* strtok(char* restrict str, const char* restrict delim) 函數(shù)可以把字符串 str 按照給定的分隔符 delim 進(jìn)行分隔

? ? ? ? token = strtok(row, ",");

? ? ? ? for (int j = 0; token != NULL; j++) {

? ? ? ? ? ? //讀取的是字符串,要的是double 用atof轉(zhuǎn)化過來

? ? ? ? ? ? arry[j][i] = atof(token);

? ? ? ? ? ? //printf("%0.2f\n",arry[j][i]);

? ? ? ? ? ? token = strtok(NULL, ",");

? ? ? ? }

? ? }

? ? fclose(fp);

? ??


? ? //熱傳導(dǎo)

? ? //double t[2002][2002];

? ? double **t;

? ? t = ( double? **)? malloc ( sizeof ( double? *) *2002); /*申請(qǐng)一組一維指針空間*/

? ? for (int i = 0; i < 2002; i ++)

? ? ? ? t[i] = ( double? *) malloc ( sizeof ( double ) * 2002);? /*對(duì)于每個(gè)一維指針,申請(qǐng)一行數(shù)據(jù)的空間*/

? ? clock_t startTime, endTime;? ?//并行時(shí)間

? ? startTime = clock();

? ??

? ? //初始化

? ? for (int i = 0; i < 2002; i++) {

? ? ? ? for (int j = 0; j < 2002; j++) {

? ? ? ? ? ? if (i == 0 && j != 0 && j != 2001) { //上方

? ? ? ? ? ? ? ? t[i][j] = arry[0][j-1];

? ? ? ? ? ? }

? ? ? ? ? ? else if (i == 2001 && j != 0 && j != 2001) {//下方

? ? ? ? ? ? ? ? t[i][j] = arry[1][j-1];

? ? ? ? ? ? }

? ? ? ? ? ? else if (j == 0 && i != 0 && i != 2001) {//左方

? ? ? ? ? ? ? ? t[i][j] = arry[2][i-1];

? ? ? ? ? ? }

? ? ? ? ? ? else if (j == 2001 && i != 0 && i != 2001) {//右方

? ? ? ? ? ? ? ? t[i][j] = arry[3][i-1];

? ? ? ? ? ? }

? ? ? ? ? ? else {

? ? ? ? ? ? ? ? t[i][j] = 0;

? ? ? ? ? ? }

? ? ? ? }

? ? }



? ? int thread_count = strtol(argv[1],NULL,10);


? ? //計(jì)算

? ? int k = 1;

? ? while (k <= 200) {

#pragma omp parallel for num_threads(thread_count) schedule(dynamic) shared(t)

? ? ? ? for (int i = 1; i < 2001; i++) {

? ? ? ? ? ? for (int j = 1; j < 2001; j++) {

? ? ? ? ? ? ? ? t[i][j] = (t[i - 1][j] + t[i + 1][j] + t[i][j - 1] + t[i][j + 1]) / 4;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? k++;

? ? }


? ? endTime = clock();

? ? printf("Time: %fs\n\n", (double)(endTime - startTime)/CLOCKS_PER_SEC);? //輸出并行時(shí)間


? ??

? ? FILE *op = fopen("output.csv", "w+");

? ? if (op == NULL) {

? ? ? ? fprintf(stderr, "fopen() failed.\n");

? ? ? ? exit(EXIT_FAILURE);

? ? }

? ??

? ? for (int i = 1; i < 2001; i++) {

? ? ? ? for (int j = 1; j < 2001; j++) {

? ? ? ? ? ? fprintf(op, " %0.2f ", t[i][j]);

? ? ? ? }

? ? ? ? fprintf(op, "\n");

? ? }

? ? fclose(op);

? ??

? ? return 1;

}


3的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
张掖市| 昌邑市| 布尔津县| 扬中市| 会宁县| 峨边| 英吉沙县| 讷河市| 孝昌县| 武安市| 扎兰屯市| 从化市| 迁安市| 黄浦区| 巨野县| 百色市| 轮台县| 盐山县| 克什克腾旗| 宁远县| 罗江县| 永川市| 施甸县| 红河县| 福贡县| 澄城县| 策勒县| 清水县| 武强县| 北川| 神木县| 泾阳县| 南川市| 册亨县| 兴业县| 雅江县| 南昌市| 怀安县| 洱源县| 鄂州市| 四子王旗|