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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

3回答

1041閲覧

バブルソートで並び替えをした後に指定以外を0にする方法

rairai_1010

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2021/12/06 10:07

編集2021/12/06 10:14

前提・実現したいこと

バブルソートで並び替えをします。
例えば昇順で1.2.3.4.5の並び替えをしたとします。それを最初の3つ以外を0にする方法が知りたいです。この場合出すと、1.2.3.0.0の様な感じです。

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

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

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

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

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

kaina

2021/12/06 10:09

質問は?
rairai_1010

2021/12/06 10:15

失礼しました。 直しました
dodox86

2021/12/06 10:22

> それを最初の3つ以外を0にする方法が知りたいです。 こういう独自な要望をかなえるには特別な方法があるわけでなく、自力でプログラミングして何とかするものです。
guest

回答3

0

ある決まった数以降は全て0に更新したいということですね?

であればバブルソートで並び替え後の配列をループし、
ループの中である決まった数以上かどうか判定をすればOKです。

投稿2021/12/06 10:22

kaina

総合スコア418

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

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

0

バブルソートを完全にする必要はありません。
後ろからのスキャンを 1回すると先頭に最小値が入ります。
3回スキャンすると先頭 3個が求めるものになります。

C

1#include <stdio.h> 2 3int main(void) 4{ 5 int a[10] = { 3, 1, 4, 7, 5, 9, 2, 6, 10, 8 }; 6 for (int i = 0; i < 3; i++) 7 for (int j = 10; --j > i; ) 8 if (a[j-1] > a[j]) { 9 int t = a[j-1]; a[j-1] = a[j]; a[j] = t; 10 } 11 for (int i = 3; i < 10; i++) a[i] = 0; 12 for (int i = 0; i < 10; i++) printf(" %d", a[i]); 13 putchar('\n'); 14}

投稿2021/12/07 23:13

kazuma-s

総合スコア8224

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

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

0

最初の3つ以外を0にする方法が知りたいです。

よーするに、4つ目から末尾までを0にしたいのね?

C++

1std::vector<int> data; // ソート済データ(要素数>=3であること) 2std::fill(data.begin()+3, data.end(), 0);

投稿2021/12/06 10:34

編集2021/12/06 22:59
episteme

総合スコア16612

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

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

episteme

2021/12/06 12:22

あらホント...
kazuma-s

2021/12/06 12:55

先頭 3つは、begin()、begin()+1、begin+2 だから、0 にしたいのは begin()+3 からですね。
episteme

2021/12/06 23:00

あいたたた...修正しときますorz
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問