C 不太确定出了什么问题 #包括 #包括 具有大小的整数和元素(整数a[],整数大小){ 整数和=0; 对于(int i=0;i
我刚刚开始自学C。我试图让我的函数返回sum,但当我尝试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变量。然后,当您这样做并得到“未初始化的局部变量已使用”时,其
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)?因为你想到的和是局部的