使用指针查找数列中的最大值和最小值

#include<stdio.h>

int max_min(int a[],int n , int *max, int *min)
{
    int *p;
    *max= *min= *a;
    for(p=a+1;p<a+10;p++)
    if(*p>*max)
    *max=*p;
    else if(*p<*min)
    *min=*p;
    return 0;

}

int main()
{
    int i;
    int a[10];
    int max,min;
    printf("Please input 10 integer numbers you wangt to operate: ");
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    max_min(a,10,&max,&min);
    printf("The maximum number is :%d\n",max);
    printf("The minimum number is :%d",min);
    printf("\n");
    return 0;
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要编写一个C语言程序来计算给定数列的F(n)(斐波那契数列的变形),我们需要定义一个循环结构,用于计算数列的前几个元素,然后使用循环或递归(尽管递归可能不适合大型n,因为它效率较低)来找到最大、最小和等于0的个数。 以下是一个基本的C语言代码示例,使用循环来计算: ```c #include <stdio.h> int fibonacci(int n, int *prev, int *prev2, int *prev3, int count_zeroes) { if (n == 0) { *prev = 0; *prev2 = 1; return 1; // F(0) = 1 } else if (n == 1 || n == 2) { *prev = *prev2; *prev2 = 0; *prev3 = 1; count_zeroes = 1; // F(1) = 1 and F(2) = 0 return 2; } else { *prev = *prev2; *prev2 = *prev3; *prev3 = (*prev2 - 3 * *prev) + 2 * *prev2; // 根据给定的递推公式计算F(n) if (*prev3 == 0) { count_zeroes++; } return count_zeroes; } } int main() { int n = 10; int prev = 0, prev2 = 1, prev3 = 1, zeroes = 0; for (int i = 3; i <= n; i++) { zeroes = fibonacci(i, &prev, &prev2, &prev3, zeroes); } int max_value = prev3; int min_value = prev3; // 初始时最大和最小都是F(3), 之后会更新 printf("Max value: %d\n", max_value); printf("Min value: %d\n", min_value); printf("Number of zeroes: %d\n", zeroes); return 0; } ``` 在这个程序,我们使用了三个指针`prev`, `prev2`, 和 `prev3` 分别保存前三个数,`fibonacci` 函数负责递推计算并更新这些。`count_zeroes` 变量用来统计等于0的项。 运行这个程序,你可以得到F(0)到F(10)的最大、最小以及等于0的个数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值