进度日志 22(数组元素作函数实参,数组名作函数参数,全局变量)

这篇博客介绍了C语言中数组在函数调用中的使用,包括将数组元素作为实参传递,数组名作为函数参数以及如何利用全局变量处理数组数据。通过三个学习笔记展示了如何判别正数、输出数组元素、计算平均成绩以及求最高分、最低分和平均分的函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习笔记1:用数组元素作函数实参

编程:判别一个整数数组a[10]={1,2,3,4,-1,-2,-3,-4,2,3}中各元素的值,若大于0则输出该值,若小于等于0则输出0

#include <stdio.h>
void test(int v);
void main()
{
    int a[10] = { 1,2,3,4,-1,-2,-3,-4,2,3 };
    int i;
    for (i = 0; i < 10; i++)
    {
        test(a[i]);
    }
    printf("\n");
}
void test(int v)
{
    if (v > 0)
    {
        printf("%d", v);
    }
    else
    {
        printf("%d", 0);
    }
}

运行结果:

学习笔记2:用数组名作函数参数

编程:

#include <stdio.h>
void test(int b[10]);
void main()
{
    int a[10] = { 2,4,6,8,10,12,14,14,18,20 };
    test(a); 
// 把a的地址传回去给上面的test(int b[10]),让b也指向a的地址
    putchar('\n');
}
void test(int b[10])
{
    int i = 0;
    for (; i < 10; i++)
    {
        printf("%d ", b[i]);
    }
}

运行结果:

题目:
一个一维数组score,内放10个学生成绩,求平均成绩(写一个average函数求平均成绩)

答案:
#include <stdio.h>
double average(double array[10]);
void main()
{
    double score[10] = { 82,100,87.5,89,78,85,67.5,92.5,93,94 }, result;
    result = average(score);
    printf("average score is %5.2lf\n", result);
    putchar('\n');
}
double average(double array[10])
{
    double result = 0;
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        result += array[i];  
//等同于result = result + array[i]
    }
    result /= 10;  
//等同于result = result/10 
    return result;
}

运行结果:

学习笔记3:全局变量

题目:一个一位数组,内放10个学生成绩,写一个函数,求出平均分、最高分、最低分

答案:

#include <stdio.h>
float Max = 0, Min = 0;
void main()
{
    float average(float array[], int n);
    float ave, score[10];

    int i;
    for (i = 0; i < 10; i++)
    {
        scanf("%f", &score[i]);
    }

    ave = average(score, 10);
    printf("Max=%6.2f\nMin=%6.2f\naverage=%6.2f\n", Max, Min, ave);
}
float average(float array[], int n)  
//定义函数,形参维数组
{
    int i;
    float aver, sum = array[0];
    Max = Min = array[0];

    for (i = 1; i < n; i++)
    {
        if (array[i] > Max)
            Max = array[i];
        else if (array[i] < Min)
            Min = array[i];
        sum += array[i];
    }
    aver = sum / n;

    return aver;
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值