c - 计算数组的总和
问题描述
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int numOfMeal, items[50];//, sum;
printf("Enter number of meals/snacks: ");
scanf("%d",&numOfMeal);
for(int i=1; i<=numOfMeal;i++)
{
printf("Enter kilojoules for item %d: ", i);
scanf("%d", &items[numOfMeal]);
}
printf("Your total kilojoules are: %d", items[numOfMeal]);
return EXIT_SUCCESS;
}
关于如何计算数组总和的任何想法,当我运行这个程序时,它只显示最后输入的千焦耳..
解决方案
1.
您应该从 0 到 -1 运行循环,numOfMeal
因为数组索引从 0 开始,而不是 1。如果您访问的第 n 个元素是分段错误。
2.
代码中的第二个问题是您没有获取数组中的输入值。您的循环一次又一次地覆盖items[numOfMeal]
数组中的最后一个元素。
编写您的代码如下:
int numOfMeal, items[50],sum=0;
printf("Enter number of meals/snacks: ");
scanf("%d",&numOfMeal);
for(int i=0; i<numOfMeal;i++) // run loop from 0 to numOfMeal-1
{
printf("Enter kilojoules for item %d: ", i);
scanf("%d", &items[i]); // take the input at ith position in the array
sum+=items[i]; // sum them
}
printf("Your total kilojoules are: %d", sum); // print the final result
短代码可以是
int numOfMeal, item, sum=0;
scanf("%d",&numOfMeal);
for(int i=0; i<numOfMeal;i++){
scanf("%d", &item);
sum+=item;
}
printf("Your total kilojoules are: %d", sum);
在这段代码中,我没有将值存储在数组中,只是将其临时保存在变量中并将其添加到 sum 变量中。
推荐阅读
- image - 在 FastAPI 发布请求中上传图像会导致 400 Bad Request
- keras - Julia 的 Flux 中的 Keras W_constraint 和 W_regularizer 类似物
- php - Wordpress 目录中的 .htaccess 冲突
- ios - 在 iOS 中,当应用程序处于后台或终止状态时,不会向用户显示 CallKit
- maven - 清理和安装项目时maven依赖检查失败
- javascript - 如何对具有许多依赖项的不纯函数进行单元测试?
- ios - "预期解码字典
但找到了一个数组。”,基础错误:无 - algorithm - 为什么具有 2 个队列和排序输入的霍夫曼代码算法是 O(n)
- php - php zip提取使文件为空
- tcl - 请解释一下Tcl中的proc命令