计算数组和 #包括 #包括 内部主(空){ 国际货币基金组织,项目[50];/,总额; printf(“输入膳食/零食数量:”); scanf(“%d”和“numofedine”); 对于(inti=1;i
1) 您应该从0运行循环到计算数组和 #包括 #包括 内部主(空){ 国际货币基金组织,项目[50];/,总额; printf(“输入膳食/零食数量:”); scanf(“%d”和“numofedine”); 对于(inti=1;i,c,C,1) 您应该从0运行循环到numofemine-1,因为数组索引从0开始,而不是从1开始。如果您正在访问第n个元素,则这是一个分段错误 二, 代码中的第二个问题是没有在数组中获取输入值。循环会一次又一次地覆盖数组中的最后一个元素items[numofine] 按如下方式编写代码: #include <stdio.h> #include <stdlib.h> int main(void) { int numOfMeal, items[50];//, sum; pri
numofemine
-1,因为数组索引从0开始,而不是从1开始。如果您正在访问第n个元素,则这是一个分段错误
二,
代码中的第二个问题是没有在数组中获取输入值。循环会一次又一次地覆盖数组中的最后一个元素items[numofine]
按如下方式编写代码:
#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;
}
int numofedin,项目[50],总和=0;
printf(“输入膳食/零食数量:”);
scanf(“%d”和“numofedine”);
for(int i=0;i1)将for
循环更改为for
循环。数组的索引从0开始。将i=1
更改为i=0
和i您的代码只是将输入放入数组中,值没有求和。您知道如何在C中添加变量吗?您是否参加了讲座;-)数组索引从0开始,而不是从1开始。提示:在其他问题中:这里有一个非常明显的问题scanf(“%d”,&items[numofedine]);
-进入(不存在)数组中最后一个元素之外的元素,也就是说。如果没有一些解释,这个答案可能是正确的,但并没有真正的帮助。实际上,这是一个非常基本的程序,任何人都可以通过阅读和试运行来理解它。几乎不需要一分钟:)那么这个问题就不会被问到是否对OP来说那么简单了。我已经编辑了answer、 请检查它,如果它现在包含解释。这是一个非常好的编辑。一个小提示,你可以通过在`中包含它来标记代码的变量/引用,然后它看起来像这个
。
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);
...
int result = 0;
for (int i = 0; i < numOfMeal; i++)
{
...
result += items[i];
}
printf("Your total kilojoules are: %d", result);
...