CExercise_07_1指针和数组_3数组元素求和

题目:

3.数组元素求和。要求使用"*p++"语法结构来完成数组元素的累加 。


关键点

数组最后一个元素是arr[len-1],所以越界临界 while (p < arr + len)

超出数组范围的第一个位置。这种比较方式可以用来控制循环次数,从而安全地遍历整个数组而不越界


分析:


代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
数组元素求和。要求使用"*p++"语法结构来完成数组元素的累加 。
*/
// 遍历求和数组
int sum_arr(int arr[], int len) {
    int *p = arr;
    int sum = 0;
    // 每循环一次累加一次元素并且刚好指针p移动一个位置
    while (p < arr + len) {
        sum += *p++;
    }
    return sum;
}
int main(void) {
    int arr2[] = { 5,9,8,6,8,7,1,6,4 };
    int size = sizeof(arr2) / sizeof(arr2[0]);
    int result = sum_arr(arr2, size);
    printf("数组元素求和的结果是:%d\n",result);
    return 0;
}
	

解决方案总结:

错误积累,编译通过没有报错,但结果不对,检查原因是:在 main 函数中调用 sum_arr(arr2, size) 时没有接收返回值,然后又直接打印 sum_arr(这实际上是打印函数指针地址!!!,而不是结果.所以要记得接收)

相关推荐
handler0123 分钟前
【Linux 网络】一文读懂 HTTP 协议
linux·c语言·网络·c++·笔记·网络协议·http
我还记得那天30 分钟前
用C语言实现一个简易扫雷小游戏
c语言·开发语言
我不是懒洋洋36 分钟前
【C++】类和对象( 类的定义、实例化、 this指针、 C++和C语言实现Stack对比)
c语言·开发语言·数据结构·c++·经验分享·算法·visual studio
『昊纸』℃38 分钟前
《C语言程序设计(第3版)》课后答案.pdf
c语言·程序设计·vc++6.0·课后答案·实训题
guygg881 小时前
贝叶斯非局部均值降噪算法C语言实现
c语言·算法·均值算法
WYH2871 小时前
C语言结构体变量和结构体指针详解:定义、访问、传参与易错点总结
c语言·开发语言·算法
我不是懒洋洋1 小时前
从零实现Transformer:从注意力机制到ChatGPT
c语言·数据结构·c++·经验分享
枕星而眠2 小时前
数据结构哈希表(散列表)超详细总结
c语言·数据结构·后端·散列表
ゆづき2 小时前
假如编程语言们有外号
java·c语言·c++·python·学习·c#·生活
Dlrb121111 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数