#include <omp.h>
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
#include<cstring>
#include <iostream>
using namespace std;
int a[20000000];
int main() {
clock_t start,finish;
double totaltime;
start=clock();
char inputfile[]="aaa.txt";
int n,i;
FILE*input;
if(!(input=fopen(inputfile,"r"))){
printf("Can not open file.");
exit(1);
}
i=0;
while((fscanf(input,"%d",a+i))!=EOF){
i++;
}
n=i;
int max1=a[0];
int max2=a[0];
#pragma omp parallel for
for(int i=1;i<n;i++){
if(a[i]>max1){
max2=max1;
max1=a[i];
}
else if(a[i]>max2&&a[i]<max1) max2=a[i];
}
cout<<"并行运行结果为:"<<max2<<endl;
if(fclose(input)){
printf("File close error.");
exit(1);
}
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"并行程序的运行时间为"<<totaltime<<"秒!"<<endl;
return 0;
}
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
#include<cstring>
#include <iostream>
using namespace std;
int a[20000000];
int main() {
clock_t start,finish;
double totaltime;
start=clock();
char inputfile[]="aaa.txt";
int n,i;
FILE*input;
if(!(input=fopen(inputfile,"r"))){
printf("Can not open file.");
exit(1);
}
i=0;
while((fscanf(input,"%d",a+i))!=EOF){
i++;
}
n=i;
int max1=a[0];
int max2=a[0];
#pragma omp parallel for
for(int i=1;i<n;i++){
if(a[i]>max1){
max2=max1;
max1=a[i];
}
else if(a[i]>max2&&a[i]<max1) max2=a[i];
}
cout<<"并行运行结果为:"<<max2<<endl;
if(fclose(input)){
printf("File close error.");
exit(1);
}
finish=clock();
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
cout<<"并行程序的运行时间为"<<totaltime<<"秒!"<<endl;
return 0;
}