| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2268 人关注过本帖
标题:求助 数组定义问题
只看楼主 加入收藏
a1067942077
Rank: 2
等 级:论坛游民
帖 子:36
专家分:11
注 册:2016-10-15
结帖率:38.46%
收藏
已结贴  问题点数:10 回复次数:12 
求助 数组定义问题
求和1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...
输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。
对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。
EX 输入 2
        1  2
   输出1.00
       0.50

以下是代码
#include<stdio.h>
#include<math.h>
int main()
{
    double sum;
    int j=0,i,k;
    int m;
    scanf("%d",&m);
    int a[m];
    double b[m];
    for(k=0;k<m;k++)
    {
      scanf("%d",&a[k]);
      sum=0;
      for(i=1;i<=a[k];i++)
      {
          sum+=pow(-1,i+1)*1.0/i;
          b[j]=sum;
      }
      j++;
    }
    for(j=0;j<m;j++)
    {
        printf("%.2lf\n",b[j]);
    }
}
OJ上说编译错误  
0_0_18639938_32407.c(9) : error C2057: 应输入常量表达式
0_0_18639938_32407.c(9) : error C2466: 不能分配常量大小为 0 的数组
0_0_18639938_32407.c(9) : error C2133: “a”: 未知的大小
0_0_18639938_32407.c(10) : error C2057: 应输入常量表达式
0_0_18639938_32407.c(10) : error C2466: 不能分配常量大小为 0 的数组
0_0_18639938_32407.c(10) : error C2133: “b”: 未知的大小
搜索更多相关主题的帖子: include double 多项式 正整数 
2016-10-22 09:46
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:2 
m如果不是常量,那么最好不要这样写:int a[m];double b[m];虽然现在很多编译器允许这样写,但实际上这是错的。
最好改成int *a=(int*)malloc(sizeof(int)*m);double *b=(double*)malloc(sizeof(double)*m);(头文件malloc.h或者stdlib.h),
在代码结尾处加上两句free(a);free(b);
2016-10-22 09:59
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
在dev c++中很好,在code::blocks中编译通过不了。
2016-10-22 10:49
chang199101
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2016-10-22
收藏
得分:2 
好像数据定义有问题,你的写法编译程序无法识别;把变量m赋个值,然后把scanf  ;掉试试
2016-10-22 11:01
chang199101
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2016-10-22
收藏
得分:0 
如果不报错应该是这里的问题

2016-10-22 11:01
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:2 
这题好像不需要用数组吧,动态数组最好申请内存解决。
2016-10-22 11:04
茄子123
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2016-10-22
收藏
得分:2 
感觉题主写的很复杂啊,最好把M赋个值,
2016-10-22 11:45
dod007
Rank: 1
等 级:新手上路
帖 子:6
专家分:8
注 册:2016-10-3
收藏
得分:2 
定义变量不都是在最前面的吗?你这在中间又定义,一点都不规范,不错才怪了!!!
2016-10-22 13:03
a1067942077
Rank: 2
等 级:论坛游民
帖 子:36
专家分:11
注 册:2016-10-15
收藏
得分:0 
回复 6楼 xzlxzlxzl
能解释下吗?不用数组的做法  我也觉得这样做绕了圈子
2016-10-22 17:09
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
收藏
得分:2 
不用数组就可以实现,试一下。
#include<stdio.h>
void main()
{int i,j;
double sum=0.,k=1.0;
printf("输入:");
scanf("%d\n",&i);
scanf("%d",&j);/*只为输入第二行,并不影响后面的结果,输入数字与下面程序无关*/
printf("输出:\n");
for(j=1;j<=i;j++)
{sum+=k/j;
k=-k;
printf("    %.2lf\n",sum);}}



[此贴子已经被作者于2016-10-22 20:45编辑过]

2016-10-22 18:09
快速回复:求助 数组定义问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035225 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved