題目是:—————————————————————————————————Problem C:雞兔同籠 Time Limit:1000MS Memory Limit:65536KTotal Submit:4275 Accepted:2591 Description一個籠子里面關了雞和兔子(雞有2只腳,兔子有4只腳,沒有例外)。已經知道了籠子里面腳的總數a,問籠子里面至少有多少只動物,至多有多少只動物Input第1行是測試數據的組數n,后面跟著n行輸入。每組測試數據占1行,每行一個正整數a (a < 32768)Output輸出包含n行,每行對應一個輸入,包含兩個正整數,第一個是最少的動物數,第二個是最多的動物數,兩個正整數用一個空格分開 如果沒有滿足要求的答案,則輸出兩個0。 Sample Input2320Sample Output0 05 10—————————————————————————————————我的程序是:—————————————————————————————————#include<iostream>#include<math.h>using namespace std;int main(){int n,i,j;cin>>n;int a[n];for(i=0;i<n;i++){cin>>a[i];}for(j=0;j<n;j++){if(a[j]%2!=0) cout<<"0 0"<<endl;if(a[j]%2==0) cout<<int((a[j]+2)/4)<<" "<<a[j]/2<<endl;}return 0;}—————————————————————————————————在Code::Blocks下編譯運行都沒有問題,但在C++環境下編譯出現問題:—————————————————————————————————Compile ErrorMain.cpp640087.3746\Main.cpp(9) : error C2133: 'a' : unknown size—————————————————————————————————主要問題在于數組(a[n])的定義,請問C++里如何實現用變量定義數組的長度,請高手給出詳細完整的程序代碼好嗎,謝謝了。
4 回答
慕娘9325324
TA貢獻1783條經驗 獲得超5個贊
很簡單,用動態分配函數malloc就可以了.
int n;
cin>>n;
int*a=(int*)malloc(n*sizeof(int));
這時a就相當于數組名,如a[0]=1;a[2]=5;
汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
數組長度必須在編譯時就已確定
c++可以用new表達式動態分配數組和用delete撤消
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int n,i,j;
cin>>n;
int *a;
a=new int[n]; //new表達式返回新分配數組的第一個元素的指針
for(i=0;i<n;i++) //撤消時可用delete[]a;
{
cin>>a[i];
}
for(j=0;j<n;j++)
{
if(a[j]%2!=0) cout<<"0 0"<<endl;
if(a[j]%2==0) cout<<int((a[j]+2)/4)<<" "<<a[j]/2<<endl;
}
return 0;
}
- 4 回答
- 0 關注
- 3586 瀏覽
添加回答
舉報
0/150
提交
取消
