C 如何将数组设为1*x并对其数字求和?
所以我有这种问题。如何将数组设为1*x,然后将其数字相加。我现在写下了类似的东西。有什么想法吗?多谢各位C 如何将数组设为1*x并对其数字求和?,c,arrays,numbers,sum,C,Arrays,Numbers,Sum,所以我有这种问题。如何将数组设为1*x,然后将其数字相加。我现在写下了类似的东西。有什么想法吗?多谢各位 #include <stdio.h> #include <stdlib.h> #include <math.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc,
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int a,i,w,j,m;
int s[a];
printf("How many digits do you want to sum up\n");
scanf("%d",&a);
for(i=0;i<a;i++)
{
printf("Enter numer %d: ",i);
scanf("%d",&s[i]);
}
for(j=0;j<a;j++)
{
m=s[j]+s[j++];
}
printf("\n %d",m);
return 0;
}
#包括
#包括
#包括
/*使用控制台暂停器运行此程序,或添加您自己的getch、system(“暂停”)或输入循环*/
int main(int argc,char*argv[])
{
int a,i,w,j,m;
int s[a];
printf(“您希望合计多少位数字\n”);
scanf(“%d”和“&a”);
对于(i=0;i,使用未初始化变量是未定义的行为
int s[a];
上面的语句定义了一个大小为a
的数组s
,但是a
的值是不可预测的,因为它未初始化并且包含垃圾。数组的大小在定义时必须是已知的,并且在其整个生命周期内保持不变。您不能通过在此处更改a
的值来调整数组的大小。您可以使用malloc
使用动态内存分配
此外,以下语句再次调用未定义的行为-
m=s[j]+s[j++];
这是因为它违反了C99标准§6.52中规定的以下规则
在上一个序列点和下一个序列点之间,对象应具有
通过表达式求值最多修改一次的存储值。
此外,应仅读取先前值以确定值
储存
您的代码存在以下问题:
int a;
int s[a];
此处a
未初始化。因此,数组大小未知,这是不正确的。而不是
m=s[j]+s[j++];
你应该这样做:
m += s[j];
还有一件事,您必须在开始添加之前初始化m=0
我已将您的程序更改为:
#include <stdio.h>
int main(int argc, char *argv[]) {
int a,i,m = 0;
//First get the array size
printf("How many digits do you want to sum up\n");
scanf("%d",&a);
//Then declare the array with the size (a)
int s[a];
for(i = 0; i < a; i++){
printf("Enter numer %d: ",i);
scanf("%d",&s[i]);
m += s[i];
}
printf("\n %d",m);
return 0;
}
#包括
int main(int argc,char*argv[]){
int a,i,m=0;
//首先获取数组大小
printf(“您希望合计多少位数字\n”);
scanf(“%d”和“&a”);
//然后声明大小为(a)的数组
int s[a];
对于(i=0;i
m=s[j]+s[j++]
它不正确。你应该做一些类似于m=m+s[j]
的事情。无论如何,我不知道代码的其余部分是否正确,但可以肯定的是,你的总数是不正确的。那么你的“问题类型”到底是什么?你能更具体一点吗?一些备注:你定义了s[a]
在之前,a
有一个有意义的值。另外,你不需要数组,只需要求和就可以了。但是请初始化你的变量。事实上,m
可以从任何值开始。你的问题不精确:一个数字(可以有几个数字)与数字不一样。从你的问题来看,不清楚你是想添加x
数字还是x
数字。是的,对不起,我不是母语为母语的自然数,我写数字的地方。我知道和不正确,因为你写的我还没有那个j++数字。但是数组可以工作,问题是和,我没有知道怎么做。@1INTERFECTOR数组似乎只起作用,但它是错误的。正如我提到的,定义数组时,必须知道它的大小。此时,变量a
包含垃圾。您可以在数组定义之后分配它。这并不意味着数组大小会相应地改变。它保持不变。您不知道它的大小因为a
的大小在当时是未知值。我不可能成为任何语言开发人员,对吗?因为我有这样的问题,我的同事在10分钟内就解决了。不,不是那样的。这些事情发生在每个开发人员身上,每个人都从错误中学习。不犯错误你永远不可能成为任何东西的开发人员。但是没有你的帮助,我无法做到这一点,我认为这是错误的,我不应该朝着这个方向去编程。高效是需要时间的,不要沮丧。每个程序员在某个阶段都有相同的感觉,但当你有了基本的知识后,一切都会好起来的。祝你好运。