24小时热门版块排行榜    

查看: 1687  |  回复: 9

zyj8119

木虫 (著名写手)

[求助] 一个C程序,不知道为啥有这么多错误?

CODE:
#include
#include

const int MAXN = 100;
const int MAXINT = 10001;
int N;
int dist[MAXN][MAXN];
int flag[MAXN][MAXN];

int main()
{
        //读入数据,并初始化
        freopen("city.in","r",stdin);
        freopen("city.out","w",stdout);
        scanf("%d",&N);
        int i, j, d, k;
        for(i=0;i                 for(j=0;j                         scanf("%d",&dist[i][j]);
                        if(dist[i][j]<0){
                                dist[i][j] = MAXINT;
                        }
                }
        }
memset(flag,1,sizeof(flag));
for(k=0;k         for(i=0;i                 if(i==k)continue;
                for(j=0;j                         if(k==j)continue;
                        d=dist[i][k]+dist[k][j];
                        if(d<=dist[i][j]){
                                flag[i][j]=0;
                                dist[i][j]=d;
                        }
                }
        }
}
//
int acc=0;
for(i=0;i    if(flag[i][j])acc+=dist[i][j];
printf("%d\n",acc);
for(i=0;i         flag[i][i]=0;
         for(j=0;j                 if(j) printf(" ");
                printf("%d",flag[i][j]);
        }
        printf("\n");
}
return 0;
}


为什么扩展名为.c的时候出现这么多错误?
--------------------Configuration: w - Win32 Debug--------------------
Compiling...
w.c
e:\x\w.c(7) : error C2057: expected constant expression
e:\x\w.c(7) : error C2466: cannot allocate an array of constant size 0
e:\x\w.c(7) : error C2057: expected constant expression
e:\x\w.c(7) : error C2466: cannot allocate an array of constant size 0
e:\x\w.c(7) : error C2087: '' : missing subscript
e:\x\w.c(8) : error C2057: expected constant expression
e:\x\w.c(8) : error C2466: cannot allocate an array of constant size 0
e:\x\w.c(8) : error C2057: expected constant expression
e:\x\w.c(8) : error C2466: cannot allocate an array of constant size 0
e:\x\w.c(8) : error C2087: '' : missing subscript
e:\x\w.c(16) : error C2143: syntax error : missing ';' before 'type'
e:\x\w.c(17) : error C2065: 'i' : undeclared identifier
e:\x\w.c(18) : error C2065: 'j' : undeclared identifier
e:\x\w.c(25) : warning C4034: sizeof returns 0
e:\x\w.c(26) : error C2065: 'k' : undeclared identifier
e:\x\w.c(31) : error C2065: 'd' : undeclared identifier
e:\x\w.c(40) : error C2143: syntax error : missing ';' before 'type'
e:\x\w.c(42) : error C2065: 'acc' : undeclared identifier
Error executing cl.exe.

w.obj - 17 error(s), 1 warning(s)
但是扩展名为.cpp却没错?
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crystal5288

铁虫 (小有名气)

【答案】应助回帖

★
jjdg(金币+1): 感谢参与 2011-11-28 01:17:28
引用回帖:
1楼: Originally posted by zyj8119 at 2011-11-27 16:38:38:
[code]#include<stdio.h>
#include<string.h>

const int MAXN = 100;
const int MAXINT = 10001;
int N;
int dist[MAXN][MAXN];
int flag[MAXN][MAXN];

int main()
{
        //读入数 ...

这都是很简单的错误,自己好好看看!
2楼2011-11-27 16:55:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

【答案】应助回帖

★
jjdg(金币+1): 感谢参与 2011-11-28 01:17:36
const关键字和函数内部定义变量都在c99里面。
要夢遊,不要催眠。
3楼2011-11-27 18:27:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

【答案】应助回帖

jjdg: 感谢参与 2011-11-28 01:17:42
但是c里面不能这么写
const int MAXN = 100;
int dist[MAXN][MAXN];
int flag[MAXN][MAXN];
c++和fortran可以,如果要c的话可以用宏。
要夢遊,不要催眠。
4楼2011-11-27 18:30:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xjtuxjt

木虫 (小有名气)

【答案】应助回帖

★
jjdg(金币+1): 感谢参与 2011-11-28 01:17:49
const int MAXN = 100;
改成
#define MAXN 100

int i, j, d, k;
int acc;
变量定义放到
//读入数据,并初始化
        freopen("city.in","r",stdin);
之前

从错误提示看都是C的基本语法错误
5楼2011-11-27 18:44:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微尘、梦想

木虫 (知名作家)

【答案】应助回帖

★
余泽成(金币+1): 谢谢参与应助! 2011-12-02 17:26:13
不知道你用的是不是VS,如果是的话,可能是因为你没有配置好,点击项目->属性,然后点击配置属性->c/c++->高级,然后把右边的编译为,改为C代码
任风云变幻,我笑对人生!
6楼2011-11-27 18:54:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

引用回帖:
6楼: Originally posted by 微尘、梦想 at 2011-11-27 18:54:58:
不知道你用的是不是VS,如果是的话,可能是因为你没有配置好,点击项目->属性,然后点击配置属性->c/c++->高级,然后把右边的编译为,改为C代码

你说的这个我找不到,是工程->settings吗?
好好学习,天天向上。
7楼2011-11-27 19:52:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微尘、梦想

木虫 (知名作家)

【答案】应助回帖

★
jjdg(金币+1): 辛苦了 2011-11-28 01:18:07
引用回帖:
7楼: Originally posted by zyj8119 at 2011-11-27 19:52:31:
你说的这个我找不到,是工程->settings吗?

你的是英文版的啊,给你截了张图,你试着找一下,我对英文版的不太熟~
任风云变幻,我笑对人生!
8楼2011-11-27 20:06:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微尘、梦想

木虫 (知名作家)

【答案】应助回帖

★
余泽成(金币+1): 谢谢参与应助! 2011-12-02 17:26:30
看那个黑色加粗的字体,原来是编译为C++代码~
任风云变幻,我笑对人生!
9楼2011-11-27 20:08:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dz5172003

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
余泽成(金币+3): 谢谢参与应助,欢迎常来程序语言版! 2011-12-02 17:26:42
如下可编译成功
#include
#include

#define MAXN 100
#define MAXINT  10001
int N;
int dist[MAXN][MAXN];
int flag[MAXN][MAXN];

int main()
{
        int i,j,d,k,acc;

        freopen("city.in","r",stdin);
        freopen("city.out","w",stdout);
        scanf("%d",&N);

        for(i=0;i                 for(j=0;j                         scanf("%d",&dist[j]);
                        if(dist[j]<0){
                                dist[j] = MAXINT;
                        }
                }
        }
memset(flag,1,sizeof(flag));
for(k=0;k         for(i=0;i                 if(i==k)continue;
                for(j=0;j                         if(k==j)continue;
                        d=dist[k]+dist[k][j];
                        if(d<=dist[j]){
                                flag[j]=0;
                                dist[j]=d;
                        }
                }
        }
}

acc=0;
for(i=0;i    if(flag[j])acc+=dist[j];
printf("%d\n",acc);
for(i=0;i         flag=0;
         for(j=0;j                 if(j) printf(" ";
                printf("%d",flag[j]);
        }
        printf("\n";
}
return 0;
}
虫虫
10楼2011-11-29 17:06:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
信息提示
请填处理意见