gpt4 book ai didi

c - 使用 2 个函数的数字总和

转载 作者:太空狗 更新时间:2023-10-29 15:54:11 25 4
gpt4 key购买 nike

刚刚学习 C,我试图了解如何使用 2 个函数求出数字的总和,但结果不正确。

我试图向用户询问 10 个数字,这些数字存储在函数 main 的数组中。然后在单独的函数中计算总和,然后在 main 中显示。

这是我的原始代码,没有多个有效的函数:

int main()
{
int n[10];
int index;
int sum_n = 0;
int largest_n;
int smallest_n;
int *p;
p = &n[10];
int a;

printf("Enter 10 Integers\n");

for (index = 0; index < 10; index ++){
scanf("%d", &n[index] );

sum_n += n[index];

}

printf("The Sum of numbers is %d\n", sum_n);

}

这是我尝试将其转换为函数但求和不成功:

int calculations (int);

int main()
{
int n[10];
int index;
int largest_n;
int smallest_n;
int *p;
p = &n[10];
int a;

printf("Enter 10 Integers\n");

for (index = 0; index < 10; index ++){
scanf("%d", &n[index] );
}
if (n[index] = 10){
//sum_n += n[index];
printf("The Sum of numbers is %d\n",calculations(n[index]));
}

&

    int calculations (int num){

int sum_n = 0;

sum_n += num;

return sum_n;
}

当我使用数字 1 到 10 的函数运行第二个程序时,我得到:

cmd image

我要么在做一些明显错误的事情,要么根本不理解我在做什么。

最佳答案

每次调用函数时,函数内声明的变量都会被重置。如果您想要一个不会在每次调用函数时都被重置的变量,您可以简单地将其设为静态。

此外,您正在传递和参数 n[10] 但您的数组存储从 n[0] 到 n[9] 的数字。如果你想要所有十个数字的总和,那么你必须为每个数字调用计算函数,或者你可以传递整个数组。这是修改后的代码。

#include<stdio.h>
int calculations (int);

int main()
{
int n[10];
int index;
int largest_n;
int smallest_n;
int *p;
p = &n[10];
int a;
int ans=0;
printf("Enter 10 Integers\n");

for (index = 0; index < 10; index ++){
scanf("%d",&n[index]);
ans = calculations(n[index]);
}

printf("The Sum of numbers is %d\n",ans);
}



int calculations (int num){

static int sum_n;

sum_n += num;

return sum_n;
}

关于c - 使用 2 个函数的数字总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com