C言語プログラムについて
wikipediaのコムソートを参考に、次のように作りました。
動きますでしょうか。動かなければ、どこをどのようにすればよいか教えていただけませんでしょうか。
プログラム「#include<stdio.h>
#include<string.h>
void combsort(void);
void swap(void);
int main(void)
{
combsort();
swap();
printf("データ%dの並べ替え結果は、\n%d\nです。\n"data2,data);
return 0;
}
void combsort(){
int h,swaps,data,len,data2;
printf("ソートさせる数を入力。>\n");
scanf("%d",&data);
data2 = data;
len = strlen(data);
h = len * 10 / 13;
while(true){
swapa = 0;
for(i = 0;i + h <len;i++)
{
if(data(i) > data(i + h))
{
swap(data, i, i + h);
swaps +=1;
}
}
if(h==1){
if(swaps==0){
break;
}
}
else{
h = h * 10 / 13;
}
}
}
void swap{
int a,i,j;
const int t = a[i];
a[i] = a[j];
a[j] = t;
}
」
data:scanfによって入力される並べ替えを行う数値(例:0219523056810)を代入。
data2:dataのコピーで、並べ替えを行う前のデータを保管しておくもの。
また、これの反対(これが、昇順なら、降順。降順なら、昇順。)を同じようにしたいと思います。(combsort2にて)どうすればよいでしょうか。
教えていただけませんでしょうか。
お早めのご回答お待ちしております。