打ち消し線こんばんは。
題名通りです。何が原因かわからないので教えてください。
c++
1 2#include<iostream> 3 4using namespace std; 5 6struct map{ 7 int key, value; 8}; 9 10 11void q_sort(int start,int end, map*a){ 12 int i = start, j= end; 13 int p = a[start].value; 14 while(1){ 15 while(i < j && a[i].value < p)i++; 16 while(i < j && a[j].value >= p)j--; 17 if(i<j){ 18 map tmp = a[i]; 19 a[i] = a[j]; 20 a[j] = tmp; 21 } 22 } 23 24 if(a[i].value < p){ 25 q_sort(start, i,a); 26 q_sort(i+1,end,a); 27 } 28 else { 29 q_sort(start, i-1,a); 30 q_sort(i,end,a); 31 } 32 33} 34 35 36int main(){ 37 38 int n; 39 cin>>n; 40 41 map* a = new map[n]; 42 43 44 for(int i = 0;i<n;i++){ 45 cin>>a[i].value; 46 a[i].key = i; 47 cout<<a[i].value<<" "<<a[i].key<<endl; 48 } 49 50 q_sort(0,n-1,a); 51 for(int i = 0;i<n;i++)cout<<1+a->key<<" "; 52 53}
main文の入力を促している部分で不具合が起きているみたいです。
またどのように解決したかも教えていただけるとありがたいです。
回答2件
あなたの回答
tips
プレビュー