为了账号安全,请及时绑定邮箱和手机立即绑定

错误一error C2143: syntax error : missing ';'

错误一error C2143: syntax error : missing ';'

料青山看我应如是 2022-05-31 18:14:45
#include <iostream.h>const int N=10;int judge 1(char c[N]);int judge 2(char c[N]);int judge 3(char c[N]);int judge 4(char c[N]);void main(){char a[]={'A','B','C','D','E'};//代表五个人char b[5];// 代表五层楼int i,j,k,l,m,n,j;for(i=0;i<5;i++){b[0]=a[i];for(j=0;j<5;j++){b[1]=a[j];for(k=0;k<5;k++){if(i==k||j==k)continue;b[2]=a[k];for(l=0;l<5;l++){if(i==l||j==l||j==k)continue;b[3]=a[l];for(m=0;m<5;m++){if(i==m||j==m||k==m||l==m)continue;b[4]=a[m];n=0;n=n+judge 1(b);n=n+judge 2(b);n=n+judge 3(b);n=n+judge 4(b);if(n==0) cout<<b[5];}}}}}int judge 1(c){if(c[0]=='A');return 1;elsereturn 0;}int judge 2(c[]){if(c[4]=='B');return 1;elsereturn 0;}int judge 3(c[]){for(i=0;i<5;i++){if(c[i]=='C'&&c[i+1]=='D'||(c[i]=='D'&&c[i+1]=='C')return 0;}return 1;}int judge 4(c[]){for(i=0;i<5;i++){if(c[i]=='C'){for(int j=i+1;j<5;j++){if(c[j]=='E')return 0;}}}return 1;}cout<<"一楼:"<<c[0]<<"二楼:"<<c[1]<<"三楼:"<<c[2]<<"四楼:"<<c[3]<<"五楼:"<<c[4]<<endl;}错误一error C2143: syntax error : missing ';' before 'constant 错误2fatal error C1004: unexpected end of file found 怎样修改才会正确呢现有五层的公寓分配给A、B、C、D、E五个人住。其中A不住1楼,B不住5楼,C和D住上下楼(可以C比D住的高,也可以D比C住的高),E比C住的高。 大侠们帮帮忙吧。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

这么明显的问题
int judge 1(char c[N]);
int judge 2(char c[N]);
int judge 3(char c[N]);
int judge 4(char c[N]);
哪有这种声明方法 应该把空格去掉
int judge1(char c[N]);
int judge2(char c[N]);
int judge3(char c[N]);
int judge4(char c[N]);

还有你这程序有重定义的变量 最后C数组变量不知道是怎么冒出来的
我给修改了
#include <iostream>
using namespace std;

const int N=10;
int judge1(char c[N]);
int judge2(char c[N]);
int judge3(char c[N]);
int judge4(char c[N]);
void main()
{
char a[]={'A','B','C','D','E'};//代表五个人
char b[5];// 代表五层楼
int i,j,k,l,m,n;
for(i=0;i<5;i++)
{
b[0]=a[i];
for(j=0;j<5;j++)
{
b[1]=a[j];
for(k=0;k<5;k++)
{
if(i==k||j==k)continue;
b[2]=a[k];
for(l=0;l<5;l++)
{
if(i==l||j==l||j==k)continue;
b[3]=a[l];
for(m=0;m<5;m++)
{
if(i==m||j==m||k==m||l==m)continue;
b[4]=a[m];

n=0;
n=n+judge1(b);
n=n+judge2(b);
n=n+judge3(b);
n=n+judge4(b);
if(n==0) cout<<b[5];
}
}
}
}
}
cout<<"一楼:"<<b[0]<<"二楼:"<<b[1]<<"三楼:"<<b[2]<<"四楼:"<<b[3]<<"五楼:"<<b[4]<<endl;
}
int judge1(char c[])
{
if(c[0]=='A')
return 1;
else
return 0;
}
int judge2(char c[])
{
if(c[4]=='B')
return 1;
else
return 0;
}
int judge3(char c[])
{
for(int i=0;i<5;i++)
{
if( (c[i]=='C'&&c[i+1]=='D')||(c[i]=='D'&&c[i+1]=='C') )return 0;
}
return 1;
}
int judge4(char c[])
{
for(int i=0;i<5;i++)
{
if(c[i]=='C')
{
for(int j=i+1;j<5;j++)
{
if(c[j]=='E')return 0;
}
}
}
return 1;
}


查看完整回答
反对 回复 2022-06-06
?
噜噜哒

TA贡献1784条经验 获得超7个赞

是要判断五个人各住哪个楼层么???好复杂啊。
int judge 1(char c[N]); 这个定义数组名是不合法的,int judge这样程序会认为你定义的是变量judge 然后系统认为你忘记写分号了。所以会那样提示你错误信息的
int judge 1(char c[N]); 你希望函数名是judge 1么?函数名命名是要遵循标识符命名规则的,不能加空格。可以写成judge_1
int judge 1(c)函数定义语句是必须要声明形参类型才可以的,这里的c未声明类型,那样系统是不允许你调用的

查看完整回答
反对 回复 2022-06-06
?
慕村225694

TA贡献1880条经验 获得超4个赞

如果可以,请试着运行下我写的程序,绝对是你想要的结果
#include "Stdio.h"
#include "math.h"

main()
{
int a,b,c,d,e;
printf("a b c d e\n");
for(a=2;a<=5;a++)
{
for(b=1;b<=4;b++)
{
if(b==a)
continue;
for(c=1;c<=5;c++)
{
if(c==a||c==b)
continue;
for(d=1;d<=5;d++)
{
if(d==a||d==b||(abs(c-d)!=1))
continue;
for(e=1;e<=5;e++)
{
if(e==a||e==b||e==c||e==d||e<=c)
continue;
printf("%d %d %d %d %d\n",a,b,c,d,e);
}
}
}
}
}
getch();
}



查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 342 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信