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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

291閲覧

フリガナを昇順に表示したい

ikedarairama2

総合スコア14

C

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

1グッド

0クリップ

投稿2019/02/15 11:50

編集2019/02/15 12:04
コード #include <stdio.h> #include <stdlib.h> #include <stdlib.h> typedef struct{ char name[30]; char furigana[30]; int score; }Person; void swap_str(char s1[],char s2[]){//文字列を交換 char *temp; while(*s1 && *s2){ char t = *s1; *s1++ = *s2; *s2++ = t; } if(*s1){ temp = s1; while(*s1){ *s2++ = *s1; } *temp = *s2 = '\0'; }else if(*s2){ temp = s2; while(*s2){ *s1++ = *s2++; } *temp = *s1 = '\0'; }else{ *s1 = *s2 = '\0'; } } void Furi(const Pason x[],int y[]){ int i,j; } int Average(const Person *x,int no){ int i,y=0; for(i = 0;i < no;i++){ y += x[i].score; } return y / no; } void print_Person(const Person x[],int no){ int i; for(i = 0;i < no;i++){ printf("%-10s %10s %3d点\n",x[i].name,x[i].furigana,x[i].score); } } int main (void){ Person x[] = {{"田辺 博之","タナベ ヒロユキ", 50}, {"鈴木 次郎","スズキ ジロウ", 78}, {"佐藤 卓","サトウ スグル", 95}, {"山田 拓郎","ヤマダ タクロウ", 55}, {"阿部 新之助","アベ シンノスケ", 70}, {"安藤 弘美","アンドウ ヒロミ",100}, {"木下 陽介","キノシタ ヨウスケ", 35}, {"小田 華","オダ ハナ", 70}, {"篠原 由美","シノハラ ユミ",100}, {"斎藤 巧","サイトウ タクミ", 60}, {"佐藤 大地","サトウ ダイチ",100}, }; int nx = sizeof(x) / sizeof(x[0]); puts("ソート前"); print_Person(x,nx); Furi(x,nx); puts("\nフリガナ昇順ソート後"); print_Person(x,nx); Average(x,nx); printf("平均点は%d点",Average(x,nx)); return 0; } ### 前提・実現したいこと フリガナを昇順に表示したい ここに質問の内容を詳しく書いてください。 (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ qsortを使わずにやりたいのですがFuriの引数?をどう変えればいいのかがわかりません。プログラミングを始めたばかりで説明がうまく出ずにに申し訳ないです

エラーメッセージ

### 該当のソースコード c言語```ここに言語名を入力 ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

bochan2👍を押しています

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

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

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

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

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

episteme

2019/02/15 11:59

...それで? 何が問題?
jimbe

2019/02/15 15:43

ご質問のフォーマットが混乱されています. 表示を確認されて修正されたほうが宜しいかと思います.
episteme

2019/02/16 01:04

そのものズバリを示すことはできますが、あなたのやることなくなります。 それでもかまいませんか?
guest

回答2

0

分かりやすい説明ありがとうございます。今からやってみます!

投稿2019/02/18 12:27

ikedarairama2

総合スコア14

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

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

0

ベストアンサー

Furiの引数?をどう変えればいいのかがわかりません。

とりあえず質問されているこの部分のみお答えします。

const Pason x[]

スペルが違います。Pason→Person
並べ替えをするということを配列の要素を書き換えるということです。
従ってconstはどうかと思います。

int y[]

main関数から渡しているのは配列の個数です。
なので配列にする必要はないです。
変数名もわかりやすい名前にしましょう。

おまけ
swap_strって関数作られていますが、配列の要素を入れ替えればいいだけなので、全く必要のない関数です。
例えばx[0]とx[1]を入れ替えるのであればこう書けます。

c

1Person temp; 2temp = x[0]; 3x[0] = x[1]; 4x[1] = temp;

あとはソートの処理を実装すればOKです。

投稿2019/02/18 01:00

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問