c语言二维数组转换 编程c语言

对一个4×4的二维数组左下三角的全部元素(包含对角线上的元素)作如下变换: 若该数是素数则用它的后继素数替换; 若该数不是素数,则用0替换该数。 将变换后的数组及其数组左下三角的元素中的素数个数打印出来。 测试数据: 原数组: 3 6 4 17 8 5 9 10 9 19 7 20 4 14 21 23

N为行数
for(i =0;i<N;i++)
for(j=0;j<=i;j++)
判断素数并替换。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
bool prime(int a)
{
int i;
if (a == 1)
{
return false;
}
else
{
for (i = 2; i <= a; i++)
{
if (a % i == 0)
{
break;
}
}
if (i == a)
{
return true;
}
else
{
return false;
}
}
}
int main(void)
{
int a[5][5];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j <= i; j++)
{
if (prime(a[i][j]))
{
while (++a[i][j])
{
if (prime(a[i][j]))
{
break;
}
}
}
else
{
a[i][j] = 0;
}
}
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j <= i; j++)
{
printf("%3d", a[i][j]);
}
putchar('\n');
}
}

源代码,如果有不理解的可以私信联系我