Re: [問題] 標準差的程式碼

看板C_and_CPP (C/C++)作者 (伽藍之黑)時間12年前 (2014/06/01 23:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《williams7442 ()》之銘言: : p=(char *)strtok(str," "); : if(p!=NULL) : arr[0]=atoi(p); /*atoi(p)將字串常數轉為整數*/ : //arr[0]=atoi(p) 例如輸入:5 4 3 9 只讀到5? Yes : i=1; : while(p!=NULL){ : p=(char *)strtok(NULL," "); //分別讀取 4 3 9 : if(p!=NULL){ : arr[i]=atoi(p); //arr[1]=4 arr[2]=3 arr[4]=9 是這個意思? Yes : i++; : } : } : num=i; //i=4,輸入4個數字 : min=32767; : max=0; : //怎麼不設成min=0;max=32767; : tem=0; : for(i=0;i<num;i++){ : if(arr[i]>max) : max=arr[i]; : if(arr[i]<min) : min=arr[i]; : tem+=arr[i]; : } //for到 }這有點一頭霧水,這是甚麼意思? 這一段是在取arr中的最大值與最小值 只要找到比min小的就更新min max同理 所以你一開始把min設成0請問你要找誰跟他比小... : 這個程式輸入 1 46325 : 46325大概在超出一點點會讓標準差的平方(方差) 超過5XXXX-XXXX約9位數字 : int不是至少2147483647嗎? 10位數字 int最大就是2147483647, 也就是2的32次方減1 32767是2的16次方減1 再上去的數字這支程式都會爆炸 因為arr[i]*arr[i]這項會大過2147483647 想用就請改型態 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.241.92.249 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1401636139.A.336.html
文章代碼(AID): #1JYqKhCs (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1JYqKhCs (C_and_CPP)