下記のプログラムがコンパイラでエラーになります。
いつも教えて頂きありがとうございます。
実は基本を理解しておらず、キーパンチの練習になっています。
もう1冊自分にも解る書籍を購入しようと思います。
このプログラムの誤りだけでも教えて頂きたいのです。
2000文字では足りないので、2回に分けて投稿させて頂きます。
下記のプログラムです。
/*****************************************************
基本交換法による並べ替えを行うプログラム
******************************************************/
#include <stdio.h>
#define N 7 /*データ個数*/
#define ON 1 /*sw : 交換しました*/
#define OFF 0 /*sw : 交換していません*/
#define DATA_LEN 20 /*データ配列の1列の要素数*/
/*関数のプロトタイプ宣言*/
void printData(char p[][DATA_LEN], int n); /*文字列を表示する関数*/
void sort(char p[][DATA_LEN], int n); /*文字列を並び替える関数*/
void str_change(char *ps1,char *ps2); /*文字列と文字列とを交換する関数*/
void atr_cpy(char *pd,char *ps) /*文字列を複写する関数*/
int str_cmp(char *ps1,char *ps2) /*文字列と文字列とを比較する関数*/
main()
{
/*データの宣言*/
char p_data[N][DATA_LEN] = {"ふじさわ","えのしま","しちりがはま",
"ごくらくじ","はせ","ゆいがはま","かまくら"};
/*最初の状態を表示*/
printData(p_data,N);
/*並べ替え*/
sort(p_data,N);
/*結果を表示*/
printf("¥nソ¥ートしました¥n¥n");
printData(p_data,N);
}
/****************************************************
ポインタ型から文字列を表示
****************************************************/
void printData(char p[][DATA_LEN], int n)
/* p : 二次元配列*/
/* n : 文字列の要素数*/
{
int i; /*添え字*/
for(i=0;i<n;i++)
{
printf("%s¥n",p[i]);
}
}
/*****************************************************
基本交換法
*****************************************************/
void sort(char p[][DATA_LEN],int n)
/* p : 二次元配列*/
/* n : 文字列の要素数*/
{
int sw; /*交換したか*/
int i,j; /*添え字*/
sw = ON;
for(i = n-1 ; i>=1 && sw == ON ; i--)
{
sw = OFF;
for(j = 0; j< i ;j++)
{
/* p[j] <= p[j+1]となるようにする*/
if(str_cmp(p[j],p[j+1]) > 0)
{
str_change(p[j],p[j+1]; /*交換*/
sw = ON;
}
}
}
}
もう1回投稿致します。
お礼
回答ありがとうございます。 こちらも、なかなか良さそうなページですね。 ご紹介ありがとうございます。 自分で探しても、うまく探せなかったので、本当に助かります。 ダウンロードして、読んでみます。 ところで、Exif規格のコメント部を読み書きするだけでも、libpngを使う場合、zlibが必要なのでしょうか? もしご存知なら、お教えください。