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

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

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

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

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

解決済

2回答

1834閲覧

c言語についての質問です

hiroki15

総合スコア7

C

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

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2016/07/07 10:35

あるテキストを辞書順にソートし、別のテキストに出力するプログラムを作成したいです。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char buff[10000];
char *data[10000];
char *create_string(char *x)
{
char *p;
p=malloc(strlen(x)+1);
strcpy(p,x);
return p;
}
void copyfile(FILE *is,FILE *os)
{
int a=0;
while(fscanf(is,"%s\n",buff)!=EOF)
{
data[a]=create_string(buff);
fprintf(os,"%s\n",data[a]);
a++;
}
return;
}
int main(void)
{
FILE *is,*os;
is=fopen("tom.txt","r");
if(is==0)
{
printf("ERROR");
return 0;
}
os=fopen("new.txt","w");
if(os==0)
{
printf("ERROR2");
return 0;
}
copyfile(is,os);
fclose(is);
fclose(os);
return 0;
}
このプログラムのcopyfileの部分にポインターをソートする機能を追加したいのですがわかりません
ソート方法はバブルソートです
(上で”あるテキスト”と書いたテキスト内には大文字と小文字があるので入力したときに全部小文字にして区別したいです)

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

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

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

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

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

guest

回答2

0

バブルソートのアルゴリズムがわからないのか、アルゴリズムはわかるけどプログラム化できない、のどちらでしょうか。
いずれにしても、まずは簡単なプログラムでバブルソートを実践して、それの応用で今回のプログラムに組み込めばいいと思いますよ。
簡単なプログラムは、例えば次のような単純に数値の配列をソートするようなものです。
int data[10] = { 5, 2, 3, 1, 0, 8, 4, 7, 9, 6 };

投稿2016/07/07 23:44

ttyp03

総合スコア16998

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

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

0

ベストアンサー

バブルソートのアルゴリズムを説明できますか?
できなければコーディングは無理ですから、まず説明できるようになりましょう。

そのためにはバブルソートのアルゴリズムの解説をまずみつけてください。
1 分で簡単にみつかるはずです。

トランプを用意して、実際にその解説にしたがってバブルソートしてみてください。

投稿2016/07/07 11:07

Zuishin

総合スコア28660

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

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

hiroki15

2016/07/08 01:28

アルゴリズムという言葉の意味がいまいちピンとこないんですが、バブルソートのプログラムと意味はわかります int bubble_sort(int n,int data[]) { int h,i; for(h=0;h<n-1;h++) { for(i=n-1;i>h;i--) { if(data[i-1]>data[i]) swap(i-1,i); } } return 0; } このプログラムにポインターをソートする機能を付けたいのですが、その方法がわかりません
Zuishin

2016/07/08 05:40 編集

data[i-1]>data[i] というところがデータの比較になりますから、ここを書き換えてください。 データが文字列で大文字と小文字を区別しないということだと、stricmp を使うのが簡単です。strcmp ではなく、stricmp です。 ただし、これは文字コード順であり、日本語の辞書順とは若干違います。 本気で辞書順に並べ替えるとなると、複雑な比較関数を自分で作らなくてはならなくなり、結構大変です。 学校の課題でバブルソートのような初歩的なアルゴリズムの学習なら辞書順までは要求されないと思いますので、文字コード順で十分かと思いますが、一応確認してみてください。
Zuishin

2016/07/08 05:46

アルゴリズムというのは、データを処理する時の手順です。プログラムという言葉ともほぼ重なりますが、ここでは「実際にプログラミング言語を使ってコーディングする前にその処理の流れを理解しているか」という意味で使いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問