我的练习是输入从键盘输入整数,然后按程序结束。然后打印数组的总和。这是我的代码:我有练习c
#include <stdio.h>
#include <stdlib.h>
const int MAX_ITEMS = 50;
void inputIntegerNumber(int* a, int* count);
int sumOfInteger(int* n, int* count);
int main(int argc, char** argv) {
int x[MAX_ITEMS], count;
inputIntegerNumber(&x, &count);
printf("Sum of array is %d", sumOfInteger(&x, &count));
return (EXIT_SUCCESS);
}
void inputIntegerNumber(int* a, int* count){
do{
printf("Please! input numbers: ");
scanf("%d", a);
*count++;
}while((*a != 0) && (*count != MAX_ITEMS));
}
int sumOfInteger(int* n, int* count){
int sum = 0;
for (int i = 0; i < *count; i++)
sum += *n;
return sum;
}
我不知道它有什么问题吗?它没有给我一个结果,同样我认为......
初学者'* count ++;' - >'(* count)++;'参见C * Operator Precedence *。 –
当问这样一个问题时,请非常清楚地定义*你的输入,预期输出和实际输出。 – deniss
打开编译器警告。编译器会告诉你一些错误的东西。另一个不对的地方是,你永远不会访问超出第一个数组的元素。 –