OpenMP并行程序求输入年份,判断某一年是否为闰年
时间: 2023-08-20 08:07:18 浏览: 106
输入年份判断是否是闰年
4星 · 用户满意度95%
以下是一个使用OpenMP并行化的输入年份、判断某一年是否为闰年的程序:
```c
#include <stdio.h>
#include <omp.h>
int main() {
int year;
int is_leap_year = 0;
printf("Please input a year: ");
scanf("%d", &year);
#pragma omp parallel num_threads(2)
{
#pragma omp sections
{
#pragma omp section
{
if (year % 4 == 0) {
#pragma omp atomic write
is_leap_year = 1;
}
}
#pragma omp section
{
if (year % 100 == 0 && year % 400 != 0) {
#pragma omp atomic write
is_leap_year = 0;
}
}
}
}
if (is_leap_year) {
printf("%d is a leap year.\n", year);
} else {
printf("%d is not a leap year.\n", year);
}
return 0;
}
```
程序中使用了OpenMP的并行机制,将输入年份和判断是否为闰年的两个部分分别放在两个并行的线程中执行,最后通过`atomic write`操作来保证结果的正确性。其中`num_threads`指定了使用的线程数,`sections`将代码划分为两个部分,`section`用来指定每个部分的具体代码。
阅读全文