回 帖 发 新 帖 刷新版面

主题:【新手问题】用VC编译C语言,宏定义使用为何出错?

#include<stdio.h>
#define N 11;
#define M 9;
int score[N][M];
int i,j;
void main()
{
    void input();
    void output();
    input();
    output();
}

void input()
{
    printf("请依照学号依次输入语文,数分,几何,英语,电脑,体育,思德和应用写作的成绩\n");
    for(i=1;i<=N;i++)
    {
        printf("No.%d 的成绩是:",i);
        for(j=1;j<=9;j++)
            scanf("%d",&score[i][j]);
    }
}

void output()
{
    printf("No  语文,数分,几何,英语,电脑,体育,思德,应用写作\n");
    for(i=1;i<=N;i++)
    {
        printf("No.%d ",i);
        for(j=1;j<=9;j++)
            printf("%d",score[i][j]);
    }
}

D:\C作业\Text1.c(4) : error C2143: syntax error : missing ']' before ';'
D:\C作业\Text1.c(4) : error C2059: syntax error : ']'
D:\C作业\Text1.c(4) : error C2059: syntax error : ']'
D:\C作业\Text1.c(17) : error C2143: syntax error : missing ')' before ';'
D:\C作业\Text1.c(17) : error C2059: syntax error : ')'
D:\C作业\Text1.c(18) : error C2143: syntax error : missing ';' before '{'
D:\C作业\Text1.c(21) : error C2109: subscript requires array or pointer type
D:\C作业\Text1.c(21) : error C2102: '&' requires l-value
D:\C作业\Text1.c(28) : error C2143: syntax error : missing ')' before ';'
D:\C作业\Text1.c(28) : error C2059: syntax error : ')'
D:\C作业\Text1.c(29) : error C2143: syntax error : missing ';' before '{'
D:\C作业\Text1.c(32) : error C2109: subscript requires array or pointer type
Error executing cl.exe.

如果把N和M都换成数字就能通过,但这样宏定义就没用了。。。。

回复列表 (共2个回复)

沙发

没仔细看你完整的程序,但#define使用肯定是错的,预编译指令不是C/C++语句,结尾不要用分号";",";"是语句结束的标记.
input,output函数中for循环的循环控制变量也有问题,C/C++中数组第一个元素下标是0,不是1,因此最后一个元素的下标就应是数组长度减1,你这里数组下标(循环控制变量)很明显越界了.

板凳

define 表达式后没有分号;

我来回复

您尚未登录,请登录后再回复。点此登录或注册