程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 一個小島-眼睛的顏色 算法題我的代碼為什麼不能通過???一個島上有n個人

一個小島-眼睛的顏色 算法題我的代碼為什麼不能通過???一個島上有n個人

編輯:編程綜合問答
眼睛的顏色 算法題我的代碼為什麼不能通過???一個島上有n個人

一個島上有n個人,每個人的眼睛要麼是藍色的,要麼是黑色的,並且至少有一個人眼睛是藍色的。每個人都知道至少一個人眼睛是藍色的事實,但是不知道具體幾個人眼睛是藍色的。每天所有人互相見面,他們可以看到別人的眼睛的顏色,但是看不到自己眼睛的顏色。別人也不能告訴他眼睛的顏色。如果一個人推斷出自己的眼睛是藍色的,他就會在當天離開。求每個人離開在第幾天。

輸入格式:

多組數據,每組數據第一行是一個正整數n,表示人數。(2<=n<=10000)

接下來一行n個整數,每個整數是0或者1,0表示藍色,1表示黑色。輸入至少擁有一個0。

輸出格式:

對每組數據輸出一行n個空格分隔的整數,表明每個人在第幾天離開。不會離開的人輸出-1。

#include
int main()
{
int n,j,i,es,ar[10001];
while(scanf("%d",&n)!=EOF)
{
i=0;j=0;
while(j<n)
{
scanf("%d",&es);
if(!es) i++;
ar[j++]=es;
}
for(j=0;j<n;j++)
{
if(ar[j]) printf("-1");
if(!ar[j]) printf("%d",i);
if(j<n-1) printf(" ");
if(j==n-1) printf("\n");
}
}
return 0;
}

#include
using namespace std;
int main()
{
int n,i;
int k=0;
cin>>n;
int p[10001];
for(i=0;i {
cin>>p[i];
if(p[i]==0)
k++;
}
for(i=0;i<n;i++){
if(p[i]) cout<<"-1";
if(!p[i]) cout<<k;
if(i<n-1) cout<<" ";
if(j==n-1) printf("\n");
}
return 0;
}

第一份是通過了的c代碼,第二份是沒通過的c++,我想問為什麼c++通不過,顯示的答案錯誤,我測過許多數據,沒錯誤啊???

最佳回答:


請你重新發一下代碼,現在的排版亂,而且缺了一些部分,看不清楚。
你是不是沒在cin讀入數據結束(返回0)時終止程序

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved