使用递归:
#include
#include
#define SAFE_FREE(p) \
free(p); \
p = NULL;
int *reverseSentence();
int leng;
int main()
{
int *p = NULL;
printf("输入一组整数: ");
p = reverseSentence();
int sum = 0;
for (int i = 0; i < leng; i++)
{
sum += p[i];
}
printf("数组和:%d", sum);
SAFE_FREE(p);
return 0;
}
int *reverseSentence()
{
static int sum, num;
static int *p;
int n;
char c;
scanf("%d%c", &n, &c);
sum++;
if (c != '\n')
{
reverseSentence();
}
else
{
p = malloc(sizeof(int) * sum);
}
num++;
p[sum - num] = n;
if (sum == num)
{
leng = sum;
printf("整数数组长度:%d\n", leng);
sum = num = 0;
}
return p;
}
执行输出:输入一组整数: 6 99 8
整数数组长度:3
数组和:113
aewnfin
aewnfin
aew***n@outlook.com1年前 (2020-02-25)