亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++里如何實現用變量定義數組的長度

C++里如何實現用變量定義數組的長度

C++
繁星淼淼 2019-03-31 08:00:04
題目是:—————————————————————————————————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;

查看完整回答
反對 回復 2019-04-03
?
達令說

TA貢獻1821條經驗 獲得超6個贊

如何在數組定義時,數組的長度用一個變量
問題:在整個程序中的前半部分計算了一個n的值,在后面想用這個n的值定義一個n維的數組,如何解決?

錯誤方法:int a[n],C不認。
解決方法:
1.用vector類
2.用malloc函數
#include <stdlib.h>
int main(void)
{
int *a;

int n,i;
scanf("%d",&n);
a=malloc(sizeof(int)*n);
for (i=0;i<n;i++)
a[i]=i;
free(a);/*釋放malloc()分配的空間*/
return 0;
}



查看完整回答
反對 回復 2019-04-03
?
汪汪一只貓

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;
}



查看完整回答
反對 回復 2019-04-03
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

這個你可以不用給數組a定義長度,把第九行改為int a[];就行了。
你可以用變量n控制數組的長度,但是不能用變量定義數組長度。

查看完整回答
反對 回復 2019-04-03
  • 4 回答
  • 0 關注
  • 3586 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號