携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
题目描述
解题思路
对于A1到A5,我们用5个函数分别求。 在下面的代码中,用
find表示是否查找到出现过该种类型的数字,出现过赋值为1,没有出现为0. 具体实现看下面的代码
代码
#include <stdio.h>
#include <stdlib.h>
int find = 0;
int f1(int* a, int n)
{
find = 0;
int i = 0,sum=0;
for (; i < n; i++)
{
if (a[i] % 5 == 0&&a[i]%2==0)
{
find = 1;
sum += a[i];
}
}
return sum;
}
int f2(int* a, int n)
{
find = 0;
int i = 0, sum = 0, x = 1;
for (; i < n; i++)
{
if (a[i] % 5 == 1)
{
find = 1;
sum += x * a[i];
x = -1*x;
}
}
return sum;
}
int f3(int* a, int n)
{
find = 0;
int i = 0, sum = 0;
for (; i < n; i++)
{
if (a[i] % 5 == 2 )
{
find = 1;
sum++;
}
}
return sum;
}
double f4(int* a, int n)
{
find = 0;
int i = 0, sum = 0,count=0;
for (; i < n; i++)
{
if (a[i] % 5 == 3 )
{
find = 1;
sum += a[i];
count++;
}
}
return (double)sum/count;
}
int f5(int* a, int n)
{
find = 0;
int i = 0, max = 0;
for (; i < n; i++)
{
if (a[i] % 5 == 4)
{
find = 1;
if(max<a[i])
max = a[i];
}
}
return max;
}
int main()
{
int n,i;
scanf("%d", &n);
int* a = (int*)malloc(n * sizeof(int));
if (a == NULL)
{
return 0;
}
for (i = 0; i < n; i++)
{
scanf("%d", a + i);
}
int ret=f1(a, n);
if (find == 0)
{
printf("N ");
}
else
{
printf("%d ",ret);
}
ret=f2(a, n);
if (find == 0)
{
printf("N ");
}
else
{
printf("%d ", ret);
}
ret = f3(a, n);
if (find == 0)
{
printf("N ");
}
else
{
printf("%d ", ret);
}
double b=f4(a, n);
if (find == 0)
{
printf("N ");
}
else
{
printf("%.1lf ", b);
}
ret = f5(a, n);
if (find == 0)
{
printf("N ");
}
else
{
printf("%d ", ret);
}
free(a);
a=NULL:
return 0;
}
题目描述
解题思路
就是求素数 先动态开辟一个区域,开辟为n个整型的大小的空间。 注意: 用
count记录是第几个素数。 打印的时候注意每一行的结尾不能有空格。 因为我是从0处开始存储素数的,打印的时候,m,n都有减一哦! 具体实现看代码:
代码
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int m, n,i,count=1,x;
scanf("%d%d", &m, &n);
int* a = (int*)malloc(n * sizeof(int));
if (a == NULL)
{
return 0;
}
a[0] = 2;
for (i = 3;count<=n; i++)
{
for (x = 2; x <= (int)sqrt(i); x++)
{
if (i % x == 0)
{
break;
}
}
if (x > (int)sqrt(i))
{
a[count++] = i;
}
}
x = 0;
for (i = m-1; i < n; i++)
{
printf("%d", a[i]);
x++;
if (x != 10&&i!=n-1)
{
printf(" ");
}
else if (x == 10)
{
x = 0;
printf("\n");
}
}
free(a);
a = NULL;
return 0;
}