42.编写一个函数int Count(double a[],int n),统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回这个值。ps:使用for循环实现。
int Count(double a[], int n)
{
int i,sum=0;
double x = 0;
for (i = 0; i < n; i++)
{
x += a[i];
}
for (int j = 0; j < n; j++)
{
if (a[j] > (x / n))
sum++;
}
printf("%f\n", (x / n));
printf("%d", sum);
return 0;
}
int main()
{
int n;
double a[100];
scanf_s("%d", &n);
for (int i = 0; i < n; i++)
{
scanf_s("%lf", &a[i]);
}
Count(a, n);
}
47.编写一个函数comm(int n,int k),用递归算法计算从n个人中选择k个人组成一个委员会的不同组合数,由n个人里挑选k个人的组合数=由(n-1)个人里选k个人的组合数+由(n-1)个人里选(k-1)个人的组合数。
int comm(int n, int k)
{
if (n < k)
return 0;
else if (n == 0 || k == 0)
return 1;
else
return comm(n - 1, k) + comm(n - 1, k - 1);
}
int main()
{
int a, b;
scanf_s("%d%d", &a, &b);
comm(a, b);
printf("%d", comm(a, b));
}
51.将数组a[n]中每一个元素依次循环向后移动一位。
int main()
{
int a[100], n,x,i;
scanf_s("%d", &n);
for (i = 0; i < n; i++)
scanf_s("%d", &a[i]);
x = a[n - 1];
for (i = n-1; i>=0; i--)
{
a[i] = a[i-1];
}
a[0] = x;
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}
53.编写函数,给出年,月,日后,求该日是该年的第几天。
int days(int y, int m, int d)
{
int x;
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
x = 29;
else
x = 28;
switch (m)
{
case 1:m = d; break;
case 2:m = 31 + d; break;
case 3:m = 31 + x + d; break;
case 4:m = 62 + x + d; break;
case 5:m = 92 + x + d; break;
case 6:m = 123 + x + d; break;
case 7:m = 153 + x + d; break;
case 8:m = 184 + x + d; break;
case 9:m = 215 + x + d; break;
case 10:m = 245 + x + d; break;
case 11:m = 276 + x + d; break;
case 12:m = 306 + x + d; break;
}
printf("第%d天", m);
return 0;
}