c语言数组求和
数组求和中有什么要注意的吗为什么我输入几个很小的数s(也就是和)为什么很大啊甚至超出了整形的范围#include<stdio.h>voidmain(){FILE*fp;i...
数组求和中有什么要注意的吗 为什么我输入几个很小的数
s (也就是和)为什么很大啊 甚至超出了整形的范围
#include<stdio.h>
void main()
{FILE * fp;int a[5];int i=0;int s=0;float ave;int m[5];
printf("please input the number:");
scanf("%d",&a[1]);
for(i=0;i<1;i++)
{s=s+a[i];}
printf("s=%d\n",s);
ave=s/5;
for(i=0;i<5;i++)
{if (a[i]>ave)
m[i]=a[i];}
printf("%d",m[i]);
fp=fopen("c:\\high.dat","w+");
{fscanf(fp,"%d\n",m[i]);}}
问题的原型是这样的,谢谢。
#include<stdio.h>
void main()
{FILE * fp;int a[5];int i=0;int s=0;float ave;int m[5];
printf("please input the number:");
scanf("%d",&a[5]);
for(i=0;i<5;i++)
{s=s+a[i];}
printf("s=%d\n",s);
ave=s/5;
for(i=0;i<5;i++)
{if (a[i]>ave)
m[i]=a[i];}
printf("%d",m[i]);
fp=fopen("c:\\high.dat","w+");
{fscanf(fp,"%d\n",m[i]);}} 展开
s (也就是和)为什么很大啊 甚至超出了整形的范围
#include<stdio.h>
void main()
{FILE * fp;int a[5];int i=0;int s=0;float ave;int m[5];
printf("please input the number:");
scanf("%d",&a[1]);
for(i=0;i<1;i++)
{s=s+a[i];}
printf("s=%d\n",s);
ave=s/5;
for(i=0;i<5;i++)
{if (a[i]>ave)
m[i]=a[i];}
printf("%d",m[i]);
fp=fopen("c:\\high.dat","w+");
{fscanf(fp,"%d\n",m[i]);}}
问题的原型是这样的,谢谢。
#include<stdio.h>
void main()
{FILE * fp;int a[5];int i=0;int s=0;float ave;int m[5];
printf("please input the number:");
scanf("%d",&a[5]);
for(i=0;i<5;i++)
{s=s+a[i];}
printf("s=%d\n",s);
ave=s/5;
for(i=0;i<5;i++)
{if (a[i]>ave)
m[i]=a[i];}
printf("%d",m[i]);
fp=fopen("c:\\high.dat","w+");
{fscanf(fp,"%d\n",m[i]);}} 展开
4个回答
展开全部
C语言的静态数组是编译期确定长度,也就是它的长度必需是整数常数、展开为整数的宏或enum、const常量整数这几种情况,不能是变量。如果期望一个数组的长度在运行期确定,则需要用C语言标准库的malloc函数,那个叫动态存储
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
#include
int
main()
{
int
n;
int
val;
int
*
a;
int
sun
=
0,
i;
printf("请输入数组的长度:");
scanf("%d",
&n);
printf("\n");
a
=
(int
*)malloc(n
*
sizeof(int));//为数组a动态分配内存
for(i
=
0;
i
<
n;
i++)
{
printf("请输入数组的第%d个元素的值:",
i+1);
scanf("%d",
&val);
printf("\n");
a[i]
=
val;
}
for
(i
=
0;
i
<
n;
i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun
=
%d\n",sun);
free(a);//释放a动态分配的内存
return
0;
}
#include
int
main()
{
int
n;
int
val;
int
*
a;
int
sun
=
0,
i;
printf("请输入数组的长度:");
scanf("%d",
&n);
printf("\n");
a
=
(int
*)malloc(n
*
sizeof(int));//为数组a动态分配内存
for(i
=
0;
i
<
n;
i++)
{
printf("请输入数组的第%d个元素的值:",
i+1);
scanf("%d",
&val);
printf("\n");
a[i]
=
val;
}
for
(i
=
0;
i
<
n;
i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun
=
%d\n",sun);
free(a);//释放a动态分配的内存
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("请输入数组的长度:");
scanf("%d", &n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//为数组a动态分配内存
for(i = 0; i < n; i++)
{
printf("请输入数组的第%d个元素的值:", i+1);
scanf("%d", &val);
printf("\n");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//释放a动态分配的内存
return 0;
}
#include
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("请输入数组的长度:");
scanf("%d", &n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//为数组a动态分配内存
for(i = 0; i < n; i++)
{
printf("请输入数组的第%d个元素的值:", i+1);
scanf("%d", &val);
printf("\n");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//释放a动态分配的内存
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询