Re: [問題] 變數放置問題
看板C_and_CPP (C/C++)作者walm20 (New CygnusX)時間16年前 (2009/08/28 04:59)推噓1(1推 0噓 2→)留言3則, 2人參與討論串2/2 (看更多)
※ 引述《aticsu (uscita)》之銘言:
: 想請教大家一個變數放置的問題
: 程式裡陣列變數a當成全域變數沒有問題 dev-c++可以正常執行
: 但是一旦我將牠放入main function裡面
: 就會有error發生
: 錯誤訊息:
: AppName: test.exe AppVer: 0.0.0.0 ModName: test.exe
: ModVer: 0.0.0.0 Offset: 000019d3
: 不知道是哪邊出錯
: scope範圍應該都是對的啊~
程式如下:(下面這是會產生錯誤的 可自行將註解位置對調即可正確執行)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
不是很懂你這句話
我嘗試用猜的
: #include<stdio.h>
: #include<stdlib.h>
: //int a[1000000];
首先是這行註解拿掉
: long long CycLen(long long i){
: long long cont = 1;
: do{
: if (i==1) break;
: if (i%2==0){
: i=i/2;
: cont++;
: }
: else{
: i=3*i+1;
: cont++;
: }
: }while(i!=1);
: return cont;
: }
: int main(void){
: int i=1;
: int a[1000000];
把這行註解掉 ------------------ (*)
: int j=1;
: int max = 0;
: while (scanf("%d%d",&i,&j)!=EOF){
: if(i<=0||j>=1000000){
: break;
: }
: int minn = i;
: int maxn = j;
: if(i>j){
: int temp;
: temp = minn;
: minn = maxn;
: maxn = temp;
: }
: max = 0;
: for (long long k=minn;k<=maxn;k++){
: a[k] = CycLen(k);
: }
: for (long long k=minn;k<=maxn;k++){
: if (a[k]>max){
: max = a[k];
: }
: }
: printf("%d %d %d\n",i,j,max);
: }
: system("pause");
: return 0;
: }
如果我猜的沒錯的話
那這error的解法是:
把 (*)處改成
int *a=new int [1000000];
原因是1000000太多,必須要用new
另外建議你:
1. 把問題講清楚
2. 請人看code,不是直接複製貼上,置底有貼code空間
--
我的露天拍賣:
http://tinyurl.com/6z4rw7
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.4.48
推
08/28 12:17, , 1F
08/28 12:17, 1F
→
08/28 13:54, , 2F
08/28 13:54, 2F
→
08/28 14:13, , 3F
08/28 14:13, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章