error C2059: syntax error : ']'

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define N 3

void menu();
void input_data(struct user s[]);
void enter_data(struct user s[]);
void display_data(struct user s[],int p);
void correct_data(struct user s[],int p);
void inquire_data(struct user s[],int p);
float take_data(struct user s[],int p);

struct user{
char name[20];
int num;
int s;
float m;
}s;

static int p;

void mian()
{
char choose;
int flag=1;

while(flag)
{
printf("\n 1.输入用户基本信息\n");
printf("\n 2.登陆\n");
choose=getchar();
switch(choose)
{
case 1:input_data(s[]);break; ****
case 2:enter_data(s[]);break; ****
}
if(choose=='2')
{
menu();
printf(" 请选择:");
choose=getchar();
switch(choose)
{
case 1:display_data(s[],p);break; ***
case 2:correct_data(s[],p);break; ***
case 3:inquire_data(s[],p);break; ***
case 4:take_data(s[],p);break; ***
case 5:flag=0;printf("\n ***The End!***\n");
default:printf("\n Wrong Selection!\n");
}
}
}
}

void menu()
{
printf("\n ATM机工作系统\n");
printf("\n 菜单\n");
printf("\n 1.显示用户基本信息\n");
printf("\n 2.修改密码\n");
printf("\n 3.取款\n");
printf("\n 4.查询余额\n");
printf("\n 0.推出\n");
}

void input_data(struct user s[])
{
int i;
for(i=0;i<N;i++)
scanf("%s%d%d%f",s[i].name,&s[i].num,&s[i].s,&s[i].m);
}

void enter_data(struct user s[])
{
int x,y;
printf("账号:");
scanf("%d",&x);
printf("密码:");
scanf("%d",&y);
for(p=0;p<N;p++)
{
if((x==s[p].num)&&(y==s[p].s)) printf("登录成功");
else printf("请重新登录");
}
printf("\n");
}

void display_data(struct user s[],int p)
{
printf("姓名:%s\n账号:%d\n余额:%f\n",s[p].name,s[p].num,s[p].m);
printf("\n");
}

void correct_data(struct user s[],int p)
{
printf("请输入修改后的密码:");
scanf("%d",&s[p].s);
printf("\n");
}

void inquire_data(struct user s[],int p)
{
printf("余额:s[p].m\n");
printf("\n");
}

float take_data(struct user s[],int p)
{
float t;
printf("请输入要取款的金额:");
scanf("%f",&t);
s[p].m=s[p].m-t;
printf("\n");
return s[p].m;
}

错误:cpp(36) : error C2059: syntax error : ']'
cpp(46) : error C2059: syntax error : ']'
cpp(47) : error C2059: syntax error : ']'
cpp(48) : error C2059: syntax error : ']'
cpp(49) : error C2059: syntax error : ']'
小弟刚学计算机 很菜 已经弄了3个多小时了 午饭还没吃
哪位高手来指导下 小弟感激不尽
问题是一个类型的 我已经用***标注出来了

第1个回答  2010-01-17
我把语法错误给你改了一下,请参考注释,但是你的程序也有问题啊,
太长了,没时间看,你自己在琢磨琢磨啊。

有问题的话,可以Hi我,我有空就帮你看看。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

#define N 3

void menu();
void input_data(struct user s[]);
void enter_data(struct user s[]);
void display_data(struct user s[],int p);
void correct_data(struct user s[],int p);
void inquire_data(struct user s[],int p);
float take_data(struct user s[],int p);

typedef struct user{ // 如果结构体的结尾要给出名字的话,这里需要加typedef
char name[20];
int num;
int s;
float m;
}S; // 如果要给出名字的话,前边需要加typedef,并且这里的名字最好用大写,而且不要与结构体成员名相同

static int p;

void main() // main函数名写错了
{
char choose;
int flag=1;
S s[N]; // 你要用结构体数组存放一些信息,那就需要定义一个结构体数组

while(flag)
{
printf("\n 1.输入用户基本信息\n");
printf("\n 2.登陆\n");
choose=getchar();
switch(choose)
{
case 1:input_data(s);break; // 传递一个数组时,只能传递它的名字,不能带[],下同
case 2:enter_data(s);break;
}
if(choose=='2')
{
menu();
printf(" 请选择:");
choose=getchar();
switch(choose)
{
case 1:display_data(s,p);break;
case 2:correct_data(s,p);break;
case 3:inquire_data(s,p);break;
case 4:take_data(s,p);break;
case 5:flag=0;printf("\n ***The End!***\n");
default:printf("\n Wrong Selection!\n");
}
}
}
}

void menu()
{
printf("\n ATM机工作系统\n");
printf("\n 菜单\n");
printf("\n 1.显示用户基本信息\n");
printf("\n 2.修改密码\n");
printf("\n 3.取款\n");
printf("\n 4.查询余额\n");
printf("\n 0.推出\n");
}

void input_data(struct user s[])
{
int i;
for(i=0;i<N;i++)
scanf("%s%d%d%f",s[i].name,&s[i].num,&s[i].s,&s[i].m);
}

void enter_data(struct user s[])
{
int x,y;
printf("账号:");
scanf("%d",&x);
printf("密码:");
scanf("%d",&y);
for(p=0;p<N;p++)
{
if((x==s[p].num)&&(y==s[p].s)) printf("登录成功");
else printf("请重新登录");
}
printf("\n");
}

void display_data(struct user s[],int p)
{
printf("姓名:%s\n账号:%d\n余额:%f\n",s[p].name,s[p].num,s[p].m);
printf("\n");
}

void correct_data(struct user s[],int p)
{
printf("请输入修改后的密码:");
scanf("%d",&s[p].s);
printf("\n");
}

void inquire_data(struct user s[],int p)
{
printf("余额:s[p].m\n");
printf("\n");
}

float take_data(struct user s[],int p)
{
float t;
printf("请输入要取款的金额:");
scanf("%f",&t);
s[p].m=s[p].m-t;
printf("\n");
return s[p].m;
}
相似回答