質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

393閲覧

AOJのシェルソート

BlueFire

総合スコア23

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/04/30 13:57

AOJのシェルソートの問題を解いています。URLは下記です。
https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_2_D

次のプログラムは私の解答ですが、コンパイルエラーになります。VSCodeでは問題なく動きます。なぜエラーになるのでしょうか。

C++

1#include<iostream> 2using namespace std; 3 4int a[1000000]; 5 6void trace(int a[], int N) 7{ 8 for(int i=0; i<N; i++){ 9 if(i>0) cout << " "; 10 cout << a[i]; 11 } 12 cout << endl; 13} 14 15int main() 16{ 17 int N; 18 cin >> N; 19 int G[100]; 20 for(int i=0; i<N; i++) scanf("%d", &a[i]); 21 22 int h, count = 0, cnt = 0; 23 for(h=1; h<N; h=h*3+1) 24 ; 25 for( ; h>0; h/=3){ 26 if(h < N){ 27 G[count] = h; 28 count++; 29 } 30 for(int i=h; i<N; i++){ 31 int tmp = a[i]; 32 int j; 33 for(j=i-h; j>=0 && a[j]>tmp; j-=h){ 34 a[j+h] = a[j]; 35 cnt++; 36 } 37 a[j+h] = tmp; 38 } 39 } 40 41 cout << count << endl; 42 trace(G, count); 43 cout << cnt << endl; 44 for(int i=0; i<N; i++) 45 cout << a[i] << endl; 46 47 return 0; 48}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました。

AOJ初心者のため、コンパイルエラーの原因がエラーメッセージとして表示されることが分かりませんでした。
確認したところ、scanf関数がダメでした。cin>>に変えたら、コンパイルエラーからは脱しました。
次に、入力[1 1]でwrong answerとなりましたが、
for( ; h>0; h/=3){
if(h < N){
G[count] = h;
count++;
}
のところを、if(h <= N) としたら正解となりました。

投稿2022/05/01 00:19

BlueFire

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問