Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 不太确定出了什么问题 #包括 #包括 具有大小的整数和元素(整数a[],整数大小){ 整数和=0; 对于(int i=0;i_C_Arrays_Sum - Fatal编程技术网

C 不太确定出了什么问题 #包括 #包括 具有大小的整数和元素(整数a[],整数大小){ 整数和=0; 对于(int i=0;i

C 不太确定出了什么问题 #包括 #包括 具有大小的整数和元素(整数a[],整数大小){ 整数和=0; 对于(int i=0;i,c,arrays,sum,C,Arrays,Sum,我刚刚开始自学C。我试图让我的函数返回sum,但当我尝试printf(“sum=%d\n”,sum)时它不起作用(表示“总和未定义”)。我尝试将int sum添加到main中,但它显示“使用了未初始化的局部变量”。我最终不得不使用上面的printf(“sum=%d\n”,sum\u elements\u和大小(a,5))才能工作。有人能告诉我为什么吗?您得到了“sum is unidefined”,因为您没有在main函数中声明sum变量。然后,当您这样做并得到“未初始化的局部变量已使用”时,其

我刚刚开始自学C。我试图让我的函数返回sum,但当我尝试
printf(“sum=%d\n”,sum)时它不起作用(表示“总和未定义”)。我尝试将int sum添加到main中,但它显示“使用了未初始化的局部变量”。我最终不得不使用上面的
printf(“sum=%d\n”,sum\u elements\u和大小(a,5))
才能工作。有人能告诉我为什么吗?

您得到了“sum is unidefined”,因为您没有在main函数中声明sum变量。然后,当您这样做并得到“未初始化的局部变量已使用”时,其原因是您没有初始化它。您可以通过简单地将
int sum=sum_元素_与_大小(a,5)放在一起来修复这两个问题在printf调用之前。

您会得到“sum is unidefined”,因为您没有在main函数中声明sum变量。然后,当您这样做并得到“未初始化的局部变量已使用”时,其原因是您没有初始化它。您可以通过简单地将
int sum=sum_元素_与_大小(a,5)放在一起来修复这两个问题在您的printf调用之前。

将元素与大小(a,5)相加运行函数,但不将结果分配给任何对象


也许你的意思是写
intsum=sum\u元素,大小为(a,5)

将元素与大小(a,5)相加运行函数,但不将结果分配给任何对象

也许你的意思是写
intsum=sum\u元素,大小为(a,5)

在C中,变量在代码中存在的位置。具有大小的
sum\u元素\u的内部变量
sum
仅在该函数的范围内。它不存在于其他任何地方。将名为
sum
的变量添加到
main
时,该变量仅在
main
的范围内。这两个变量之间根本不相关,即使它们具有相同的名称,但它们存在于两个不同的作用域中

因此,当您尝试在
main
中使用变量
sum
时,编译器正确地警告您该变量未初始化。也就是说,它没有指定值。在
sum\u elements\u中,已经为
sum
分配了一个值,但这是一个完全不同的变量

您要做的是将大小为的
sum\u元素的结果分配给
main
中的一个变量。您可以按如下方式进行操作:

#include <stdio.h>
#include <stdlib.h>

int sum_elements_with_size(int a[], int size){
    int sum=0;
    for(int i=0; i< size ; i++){
        sum= sum + a[i];
    printf("i=%d \n sum= %d \n", i, sum);
    }
    return sum;
}

int main(){
    int a[5];
    a[0]= 1;
    a[1]= 2;
    a[2]= 0;
    a[3]= 1;
    a[4]= 3;
    sum_elements_with_size( a, 5);
    printf(" sum= %d \n", sum_elements_with_size( a, 5)); 
    system( "PAUSE");
    return 0;
}
在C语言中,变量在代码中存在的位置。具有大小的
sum\u元素\u的内部变量
sum
仅在该函数的范围内。它不存在于其他任何地方。将名为
sum
的变量添加到
main
时,该变量仅在
main
的范围内。这两个变量之间根本不相关,即使它们具有相同的名称,但它们存在于两个不同的作用域中

因此,当您尝试在
main
中使用变量
sum
时,编译器正确地警告您该变量未初始化。也就是说,它没有指定值。在
sum\u elements\u中,已经为
sum
分配了一个值,但这是一个完全不同的变量

您要做的是将大小为的
sum\u元素的结果分配给
main
中的一个变量。您可以按如下方式进行操作:

#include <stdio.h>
#include <stdlib.h>

int sum_elements_with_size(int a[], int size){
    int sum=0;
    for(int i=0; i< size ; i++){
        sum= sum + a[i];
    printf("i=%d \n sum= %d \n", i, sum);
    }
    return sum;
}

int main(){
    int a[5];
    a[0]= 1;
    a[1]= 2;
    a[2]= 0;
    a[3]= 1;
    a[4]= 3;
    sum_elements_with_size( a, 5);
    printf(" sum= %d \n", sum_elements_with_size( a, 5)); 
    system( "PAUSE");
    return 0;
}

您必须将函数的返回值赋给一个变量,在本例中,您希望将其赋给名为sum的变量。所以你会这样做:

int main()
{
    int a[5];
    int sum;
    a[0]= 1;
    a[1]= 2;
    a[2]= 0;
    a[3]= 1;
    a[4]= 3;
    sum = sum_elements_with_size( a, 5);
    printf(" sum= %d \n", sum); 
    system( "PAUSE");
    return 0;
}

请注意,printf中的'sum=%d'没有将返回值分配给变量'sum'。

您必须将函数的返回值分配给变量,如果您想将其分配给名为sum的变量。所以你会这样做:

int main()
{
    int a[5];
    int sum;
    a[0]= 1;
    a[1]= 2;
    a[2]= 0;
    a[3]= 1;
    a[4]= 3;
    sum = sum_elements_with_size( a, 5);
    printf(" sum= %d \n", sum); 
    system( "PAUSE");
    return 0;
}
请注意,printf中的'sum=%d'未将返回值分配给变量'sum'

我试图让函数返回sum,但当我尝试打印F时(“sum=%d\n”,sum);它不起作用(表示“总和未定义”)

这是因为
sum
变量未在
main()
中定义。变量
sum
的范围仅在大小为的
sum\u元素中。要使用
main()
中的
sum
变量打印值,首先需要在
main()
中定义变量

然后

int sum = 0;
sum = sum_elements_with_size( a, 5);
我试图让函数返回sum,但当我尝试打印F时(“sum=%d\n”,sum);它不起作用(表示“总和未定义”)

这是因为
sum
变量未在
main()
中定义。变量
sum
的范围仅在大小为的
sum\u元素中。要使用
main()
中的
sum
变量打印值,首先需要在
main()
中定义变量

然后

int sum = 0;
sum = sum_elements_with_size( a, 5);

我测试以下代码:

printf(" sum= %d \n", sum);
(i=0;i{ printf(“%f”,pow(i,2)); }
输出正确:


0.0000001.0000004.0000009.00000016.00000025.00000036.00000049.00000064.000000我测试以下代码:

printf(" sum= %d \n", sum);
(i=0;i{ printf(“%f”,pow(i,2)); }
输出正确:


0.000000 1.000000 4.000000 9.000000 16.000000 25.000000 36.000000 49.000000 64.000000

你可能想写这篇文章,明确你的代码是你找到的解决方案(即它确实有效)啊,我明白了,但是如果我的函数返回sum,为什么我不能使用printf(“sum=…”,sum)?因为你想到的和是局部的