C语言数组指针的小例子

 更新时间:2013年07月01日 14:39:50   作者:  
这篇文章介绍了,用c语言实现的一个数组指针的小例子,有需要的朋友可以参考一下
1、功能:输入6个学生的5门课程成绩,计算出每个学生的平均分和每门课程的平均分。
2、C语言实现代码:(其实就是用二维数组来实现的,二维数组的引用传递使用数组指针来完成)
复制代码 代码如下:

#include <stdio.h>
#define STUDENT 5
#define SCORE 6
void input_array(float (*score)[STUDENT]);
void avg_score(float (*score)[STUDENT]);
void avg_course(float (*score)[STUDENT]);
/**
 * calculate student average score and course average socore.
 */
int main(){
    float a[SCORE][STUDENT];
    input_array(a);
    avg_course(a);
    avg_score(a);
}
void input_array(float (*score)[STUDENT]){
    int i, j;
    for(i=0; i<SCORE; i++){
        printf("input the %d student score:", i+1);
        for(j=0; j<STUDENT; j++){
            scanf("%f", score[i] + j);
        }
    }
}
void avg_course(float (*score)[STUDENT]){
    int i,j;
    float s;
    for(j=0; j<STUDENT; j++){
        printf("course%d  ", j);
    }
    printf("\n");
    for(i=0; i<SCORE; i++){
        s=0;
        for(j=0; j<STUDENT; j++){
            printf("%f  ", *(score[i] + j));
            s += *(score[i] + j);
        }
        printf("\ts=%f, avg=%f\n" , s,s/STUDENT);
    }
}
void avg_score(float (*score)[STUDENT]){
    int i,j;
    float s;
    for(i=0; i<STUDENT; i++){
        s = 0;
        for(j=0; j<SCORE;j++){
            s+= *(score[j]+i);
        }
        printf("%f  " , s/SCORE);
    }
}

相关文章

  • C++使用expected实现优雅的错误处理

    C++使用expected实现优雅的错误处理

    C++ 中提供了很多中方式进行错误处理。无论是通过抛异常还是通过错误码,标准库都提供相应的调用,今天本文为大家介绍的是使用expected进行错误处理,感兴趣的可以了解一下
    2023-06-06
  • C++中回调函数(CallBack)的用法分析

    C++中回调函数(CallBack)的用法分析

    这篇文章主要介绍了C++中回调函数(CallBack)的用法,较为详细的分析了C++中回调函数(CallBack)的原理并以实例形式总结了其具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • pybind11: C++ 工程提供 Python 接口的实例代码

    pybind11: C++ 工程提供 Python 接口的实例代码

    这篇文章主要介绍了pybind11: C++ 工程如何提供 Python 接口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 使用用C++做一颗会跳动的爱心实例代码

    使用用C++做一颗会跳动的爱心实例代码

    大家好,本篇文章主要讲的是使用用C++做一颗会跳动的爱心实例代码,感兴趣的同学赶快来看一看吧,欢迎借鉴学习C++做一颗会跳动的爱心实例代码
    2021-12-12
  • C++(STL库)之顺序容器vector的使用

    C++(STL库)之顺序容器vector的使用

    这篇文章主要介绍了C++(STL库)之顺序容器vector的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程

    记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程

    这篇文章主要介绍了记逆向小白的第一次vbsedit 9爆破及内存补丁制作过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • C++ stack与queue模拟实现详解

    C++ stack与queue模拟实现详解

    这篇文章主要给大家介绍了关于c++stack与queue模拟实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧
    2021-08-08
  • C语言之栈和堆(Stack && Heap)的优缺点及其使用区别

    C语言之栈和堆(Stack && Heap)的优缺点及其使用区别

    本篇文章主要介绍了什么是栈(Stack) 、什么是堆( Heap),以及栈和堆的优缺点,同时介绍了应该什么时候使用堆和栈,有需要的朋友可以参考下
    2015-07-07
  • C++使用printf语句实现进制转换的示例代码

    C++使用printf语句实现进制转换的示例代码

    在C语言中,printf 函数可以直接实现部分进制转换功能,通过格式说明符(format specifier)快速输出不同进制的数值,下面给大家分享C++使用printf语句实现进制转换的示例代码,感兴趣的朋友一起看看吧
    2025-04-04
  • C++ 超详细深入分析单例模式

    C++ 超详细深入分析单例模式

    单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建
    2022-03-03

最新评论