[問題]兩個排序好的陣列,合併成另一個排序好ꨠ…

看板C_and_CPP (C/C++)作者 (小馬非馬)時間16年前 (2009/04/20 10:56), 編輯推噓6(6010)
留言16則, 5人參與, 最新討論串1/1
#include<iostream.h> int merge(int nums1[],int length1,int nums2[],int length2) { int i,j,k=0; int result[length1+length2]; for( ;i<length1 && j<length2; ) // 判斷nums1跟nums2中值的大小,小的先 // 擺入result中 { if(nums1[i]<nums2[j]) {result[k++]=nums1[i++];} else if(nums1[i]>nums2[j]) {result[k++]=nums2[j++];} else {result[k++]=nums1[i++]; result[k++]=nums2[j++];} } //上述做完有可能將nums1全放入但 // nums2還沒放入所以: for(int l=i;l<length1;l++) //如果i沒到底則全部放入 {result[k++]=nums1[l];} for(int m=j;m<length2;m++) //如果j沒到底則全部放入 {result[k++]=nums2[m];} for(int i=0;i<8;i++) //印出新的array中的值 { printf("new array:%d",result[i]); } } int main() { int nums1[]={1,3,5,6,13}; //定義兩個內部值案小到大排好的 //array int nums2[]={3,7,13}; merge(nums1,5,nums2,3); //call副程式 system("pause"); ====================================================== compile後出現"error: invalid types `int[int]' for array subscript" 編譯器所指出的錯誤我不是很懂他所要表達的意思, 可能是小弟基本觀念哪裡有誤解,請各位指點,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.130.1

04/20 11:00, , 1F
宣告的[]內不能是變數 請用malloc或new
04/20 11:00, 1F
※ 編輯: conan77420 來自: 61.229.130.1 (04/20 11:02)

04/20 11:05, , 2F
嗯可以了~不過我怎麼聽說宣告時放空白compile會自己去
04/20 11:05, 2F

04/20 11:05, , 3F
找,然後知道矩陣的大小是多少0.0
04/20 11:05, 3F

04/20 11:06, , 4F
你聽誰說 有這麼神??
04/20 11:06, 4F

04/20 11:07, , 5F
還有,我的答案輸出是怪怪的數字,為什麼不是內容?Q_Q
04/20 11:07, 5F
※ 編輯: conan77420 來自: 61.229.130.1 (04/20 11:14)

04/20 11:14, , 6F
喔 我誤解了 你main那樣宣告OK
04/20 11:14, 6F

04/20 11:16, , 7F
你的 i 和 j 沒給初值
04/20 11:16, 7F

04/20 11:16, , 8F
不要用 iostream.h,用 iostream,不要加 .h
04/20 11:16, 8F

04/20 11:17, , 9F
其實我也誤解了,一樓說的是我的result~
04/20 11:17, 9F

04/20 11:17, , 10F
既然用了 iostream 就別再用 printf
04/20 11:17, 10F

04/20 11:17, , 11F
若要用 printf 應該先 #include <cstdlib>
04/20 11:17, 11F

04/20 11:18, , 12F
可以了~~~謝謝各位^^
04/20 11:18, 12F

04/20 11:18, , 13F
merge() 內印結果時,不應把 result 的大小寫死
04/20 11:18, 13F

04/20 11:23, , 14F
嗯嗯,也謝謝l大
04/20 11:23, 14F

04/20 11:32, , 15F
printf -> cstdio ? ^^:
04/20 11:32, 15F

04/20 11:39, , 16F
yeah, 我筆誤了,是 cstdio 而不是 cstdlib
04/20 11:39, 16F
文章代碼(AID): #19w-HXcD (C_and_CPP)
文章代碼(AID): #19w-HXcD (C_and_CPP)