| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:编译出错,求帮助
只看楼主 加入收藏
as66760
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-10-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
编译出错,求帮助
#include<stdio.h>
int gcd (int x, int y);
int gcds(int *array,int len);
int main(void)
{
    int n;
    scanf("%d",&n);
    int array[n];
    for(int idx=0;idx<n;idx++)
    {
        scanf("%d",&array[idx]);
    }
    int now = gcds(array,n);
    printf("%d",now);
    return 0;
}
intgcd(int x,int y)
{
    if(y!=0)
        return gcd(y,x%y);
    else
        return x;
}
int gcds(int *array,int len)
{
if(len!=0)
    return gcd(*array,gcds(array+1,len-1));
else
    return *array
}








--------------------Configuration: 333 - Win32 Debug--------------------
Compiling...
333.C
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(8) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2143: syntax error : missing ')' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2065: 'idx' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : warning C4552: '<' : operator has no effect; expected operator with side-effect
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(9) : error C2059: syntax error : ')'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(10) : error C2143: syntax error : missing ';' before '{'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(11) : error C2065: 'array' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(11) : error C2109: subscript requires array or pointer type
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(11) : error C2102: '&' requires l-value
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(13) : error C2143: syntax error : missing ';' before 'type'
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(14) : error C2065: 'now' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\333\333.C(30) : error C2143: syntax error : missing ';' before '}'
执行 cl.exe 时出错.

333.exe - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: include return 
2013-10-28 17:59
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
你能先把你可以改的错误改了吗 好像未定义的错误  你这个看着都烦了
2013-10-28 18:08
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:5 
    scanf("%d",&n);int array[n];

你这是动态数组,要用到malloc,c++中用new,你直接这样是不行的。不知道你要实现什么功能,可以改的
2013-10-28 18:13
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
先改了符号啊什么的语法问题吧

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-10-28 19:01
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
int main(void)
{
    int n;
    scanf("%d",&n);
    int *array;
    array=(int *)malloc(n*sizeof(int));
    for(int idx=0;idx<n;idx++)
    {
        scanf("%d",&array[idx]);
    }
    int gcd(int x, int y);
int gcds(int *array,int len);
    int now = gcds(array,n);
    printf("%d",now);
    return 0;
}
int gcd(int x,int y)
{
    if(y!=0)
      gcd(y,x%y);
    else
        return x;
}
int gcds(int *array,int len)
{
if(len!=0)
    gcd(*array,gcds(array+1,len-1));
else
    return *array;
}
这是我改的,编译通过了,目测你这是求最大公约数吧,试了几个数,不太合适,估计越界了吧
2013-10-28 20:05
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:0 
纠正一下,不是越界,递归看的我有点晕,估计是第二个函数那出错了
2013-10-28 20:13
icanbestrong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:100
专家分:138
注 册:2013-3-13
收藏
得分:15 
#include<stdio.h>
#include<malloc.h>
int main(void)
{
    int n;
    scanf("%d",&n);
    int *array;
    array=(int *)malloc(n*sizeof(int));
    for(int idx=0;idx<n;idx++)
    {
        scanf("%d",&array[idx]);
    }
    int gcd(int x, int y);
int gcds(int *array,int len);
    int now = gcds(array,n);
    printf("%d",now);
    return 0;
}
int gcd(int x,int y)
{
    if(y!=0)
     return gcd(y,x%y);
    else
        return x;
}
int gcds(int *array,int len)
{
if(len!=1)
{printf("gcd(%d,gcds(%d,%d-1))\n",*array,*(array+1),len);
  return  gcd(*array,gcds(array+1,len-1));
}
else
    return *array;
}
这次对了,就是你指针越界了,我修改了几个地方,功能实现了
还有刚才删掉你的( return)  gcd(*array,gcds(array+1,len-1));是我没理解,抱歉,现在好了
2013-10-28 20:44
快速回复:编译出错,求帮助
数据加载中...
 
   



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

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