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

#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;
else
return 0;
}
int judge 2(c[])
{
if(c[4]=='B');
return 1;
else
return 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住的高。 大侠们帮帮忙吧。



料青山看我应如是
浏览 343回答 3
3回答

冉冉说

这么明显的问题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;elsereturn 0;}int judge2(char c[]){if(c[4]=='B')return 1;elsereturn 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;}

噜噜哒

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

慕村225694

如果可以,请试着运行下我写的程序,绝对是你想要的结果#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();}
打开App,查看更多内容
随时随地看视频慕课网APP