初学C++ 编译出错 求助

#include <iostream>
using namespace std;
int main()
{
int n,na,nb,a,b,i,j,x,y;
int f[5][5]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
int fa[200],fb[200];
cin>>n>>na>>nb;
a=0;
b=0;
for (i=0;i<na;i++) cin>>fa[i];
for (i=0;i<nb;i++) cin>>fb[i];
for (i=0;i<n;i++){
x=i%na;
if (x=0) x=na;
y=i%nb;
if (y=0) y=nb;
a=a+f[fa[x],fb[y]];
b=b+f[fb[y],fa[x]];
}
cout<<a<<' '<<b<<endl;
return 0;
}

7 条评论

  • @ 2016-07-20 11:10:06

    a=a+f[fa[x],fb[y]];
    b=b+f[fb[y],fa[x]];
    应该为:
    a+=ac[nea[x]][neb[y]];
    b+=ac[neb[y]][nea[x]];

  • @ 2016-07-20 10:01:20

    if (x=0) x=na;
    if (y=0) y=nb;
    两个if语句应该改为:
    if (x==0) x=na;
    if (y==0) y=nb;

  • @ 2016-06-10 09:19:16

    #include<iostream>
    int a[210],b[210];
    int M[5][5];
    using namespace std;
    int main()
    {
    int N,NA,NB,ansa=0,ansb=0;
    M[0][0]=0; M[0][1]=0; M[0][2]=1; M[0][3]=1; M[0][4]=0;
    M[1][0]=1; M[1][1]=0; M[1][2]=0; M[1][3]=1; M[1][4]=0;
    M[2][0]=0; M[2][1]=1; M[2][2]=0; M[2][3]=0; M[2][4]=1;
    M[3][0]=0; M[3][1]=0; M[3][2]=1; M[3][3]=0; M[3][4]=1;
    M[4][0]=1; M[4][1]=1; M[4][2]=0; M[4][3]=0; M[4][4]=0;

    scanf("%d%d%d",&N,&NA,&NB);
    for(int i=0;i<NA;i++) scanf("%d",&a[i]);
    for(int i=0;i<NB;i++) scanf("%d",&b[i]);
    for(int i=0;i<N;i++)
    {
    int ai=a[i%NA],bi=b[i%NB];
    ansa+=M[ai][bi];
    ansb+=M[bi][ai];
    }
    printf("%d %d",ansa,ansb);

    return 0;
    }

  • @ 2015-12-05 11:02:40

    #include <iostream>
    using namespace std;
    int main()
    {
    int n,na,nb,a,b,i,j,x,y;
    int f[5][5]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
    int fa[200],fb[200];
    cin>>n>>na>>nb;
    a=0;
    b=0;
    for (i=0;i<na;i++) cin>>fa[i];
    for (i=0;i<nb;i++) cin>>fb[i];
    for (i=0;i<n;i++){
    x=i%na;
    if (x=0) x=na;
    y=i%nb;
    if (y=0) y=nb;
    a=a+f[fa[x]][fb[y]];
    b=b+f[fb[y]][fa[x]];
    }
    cout<<a<<' '<<b<<endl;
    return 0;
    }

  • @ 2015-04-30 16:43:39

    #include <iostream>
    using namespace std;
    int main()
    {
    int n,na,nb,a,b,i,j,x,y;
    int f[5][5]={{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
    int fa[200],fb[200];
    cin>>n>>na>>nb;
    a=0;
    b=0;
    for (i=0;i<na;i++) cin>>fa[i];
    for (i=0;i<nb;i++) cin>>fb[i];
    for (i=0;i<n;i++){
    x=i%na;
    if (x=0) x=na;
    y=i%nb;
    if (y=0) y=nb;
    a=a+f[fa[x],fb[y]];//这里,应为f[fa[x]][fb[y]]
    b=b+f[fb[y],fa[x]];//同上
    }
    cout<<a<<' '<<b<<endl;
    return 0;
    }

  • @ 2015-04-18 22:07:20

    不知道LZ要求什么,就把语法错误说一下吧。
    第一行,include 前加#
    在第三个for循环里,两个逻辑判断语句内部,判断相等应该是==,=是赋值不是等于。
    然后C++里的二维数组下标应该是F[i][j]一类的,不可以用逗号隔开第一维和第二维。
    帮LZ改了一下:
    #include <iostream>
    using namespace std;
    int main()
    {
    int n,na,nb,a,b,i,j,x,y;
    int f[5][5]= {{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
    int fa[200],fb[200];
    cin>>n>>na>>nb;
    a=0;
    b=0;
    for (i=0; i<na; i++) cin>>fa[i];
    for (i=0; i<nb; i++) cin>>fb[i];
    for (i=0; i<n; i++) {
    x=i%na;
    if (x==0) x=na;
    y=i%nb;
    if (y==0) y=nb;
    a=a+f[fa[x]][fb[y]];
    b=b+f[fb[y]][fa[x]];
    }
    cout<<a<<' '<<b<<endl;
    return 0;
    }

    • @ 2015-04-18 22:07:53

      这个貌似有些问题,#打不出来不知道怎么回事

    • @ 2015-04-18 22:10:14

      选中所有代码块,按下Tab,效果如下:
      #include <iostream>
      using namespace std;
      int main()
      {
      int n,na,nb,a,b,i,j,x,y;
      int f[5][5]= {{0,0,1,1,0},{1,0,0,1,0},{0,1,0,0,1},{0,0,1,0,1},{1,1,0,0,0}};
      int fa[200],fb[200];
      cin>>n>>na>>nb;
      a=0;
      b=0;
      for (i=0; i<na; i++) cin>>fa[i];
      for (i=0; i<nb; i++) cin>>fb[i];
      for (i=0; i<n; i++) {
      x=i%na;
      if (x==0) x=na;
      y=i%nb;
      if (y==0) y=nb;
      a=a+f[fa[x]][fb[y]];
      b=b+f[fb[y]][fa[x]];
      }
      cout<<a<<' '<<b<<endl;
      return 0;
      }

    • @ 2015-04-27 17:49:59

      #Markdown识别为一级标题处理了,所以需要按楼上那样以代码块的方式打出来

  • @ 2015-04-18 22:01:36

    pascal路过

  • 1

信息

ID
1905
难度
3
分类
模拟 点击显示
标签
递交数
3539
已通过
1711
通过率
48%
被复制
18
上传者