| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:这道题为什么有编译错误,大神请指点
只看楼主 加入收藏
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
结帖率:70%
收藏
已结贴  问题点数:5 回复次数:6 
这道题为什么有编译错误,大神请指点
这个程序写完了,运行结果是正确的,只是向oj提交的时候显示编译错误,请大神给我指正一下,顺便能不能教教我怎么有效的找到编译错误以及编译错误的常见类型


#include<stdio.h>

int main()
{
    int n,i,j,w=1;
    float y=0,z,l;
    scanf("%d",&n);
    float a[n];
    int b[n];
    for(i=0;i<n;i++)
    {
        scanf("%f %d",&a[i],&b[i]);
    }
    for(j=0;j<n;j++)
    {
        for(i=1,l=50;i<=b[j];i++)
        {
            if(w==1)
            {
            y=y+2*l;
            (float)l=l/2;
            w++;
            }
            else if(w!=1)
            {
            y=y+4*l;
            (float)l=l/2;
            w++    ;
            }            
        }
        printf("%.2f %.2f\n",y,(float)2* l);
        y=0;
        w=1;
    }   
    return 0;
}
搜索更多相关主题的帖子: include 
2016-12-24 22:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
float a[n];//声明数组不能为变量~建议预先处理数组长度或者用动态数组~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-24 22:18
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 2楼 九转星河
但是这个题目的要求
Description
小瑜3岁了,很喜欢玩皮球,看来今后喜欢打篮球的^_^。最近她发现球从手中落下时,每次落地后反跳回原高度的一半,再落下,每次球落地时数球跳了几次,数到n次时爸爸在边上喊停,问小瑜现在球到底总共走了多少距离,小瑜故作沉思状,爸爸又问接下来小球能跳多高啊,小瑜摇摇头,心想还没跳我怎么知道啊,难道爸爸是神啊!这时的你在边上出主意想给小瑜写个程序计算一下,因此任务就交给你啦!假设球的初始高度为h,计算第n次落地时球经过的距离,以及落地后反弹能有多高。

Input
输入数据有多组,第一行为数据的组数t,下面t行为t组数据,每行有两个数h和n,分别用空格分隔。


Output
输出第n次反弹时球经过的距离和球最后的高度,保留小数点后2位。

是不是不能预先处理数组长度,至于动态数组怎么实现,我大一新生,刚开始学习不太会。。。麻烦大神教我
2016-12-24 22:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
是不是输入一行输出一行,还是输入所有数据再统一输出?一般都是输入一组数据输出一组数据这样搭配的,但如果是后者的话,就要用 malloc函数了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-24 22:29
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 4楼 九转星河
Sample Input
2
100 1
100.0 2


Sample Output
100.00 50.00
200.00 25.00

这是输入输出的例子,我刚刚百度了一下动态数组,【例如: int n;scanf("%d",&n);int a[n]; 用变量表示长度,想对数组的大小作动态说明,这是错误的。】这是我看到的,说这样的表达方式是错误的,但是我之前用这样的方式做过题并且提交正确了啊,并且编译器运行也是可以的,关于动态变量我们的教材上提到过,但也是简单的提及也没有做过相应练习,我这个代码应该怎么实现动态数组呢
2016-12-24 22:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
int *a;
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int));
然后就可以写a[0],a[1],a[2]了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-24 22:39
Wxp971031
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2016-11-11
收藏
得分:0 
回复 6楼 九转星河
十分感谢,我再跟我们老师问一下关于动态变量的这个问题,谢谢你大神
2016-12-24 22:43
快速回复:这道题为什么有编译错误,大神请指点
数据加载中...
 
   



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

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