if文について
ソートのプログラムにおいて昇順・降順を選択して表示させるプログラムを書いてるのですが
下記のように記述するとエラーが出てしまいます。
よく調べたのですがエラー表示もよくわからないものなのでした。
どのようにすればうまく動くようになるのでしょうか?
#include <stdio.h>
#define swap(type, x, y) do {type t = x; x = y; y = t; } while (0)
void bubble(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = n - 1; j > i; j--)
if (a[j - 1] > a[j])
swap(int, a[j - 1], a[j]);
}
}
void bubble2(int a[], int n)
{
int i, j;
for (i = 0; i < n - 1; i++) {
for (j = n - 1; j > i; j--)
if (a[j - 1] < a[j])
swap(int, a[j - 1], a[j]);
}
}
int main(void)
{
int i;
int x[7];
int nx = sizeof(x) / sizeof(x[0]);
int select;
printf("%d個の整数を入力せよ。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
printf("昇順ですか降順ですか? 0:昇順/1:降順 >");
scanf("%d",&select);
if (select == 0)
bubble(x, nx);
puts("昇順にソートしました。");
for (i = 0; i < nx; i++)
printf("x[%d] = %d\n", i, x[i]);
else
bubble2(x, nx);
puts("降順にソートしました。");
for (i = 0; i < nx; i++)
printf("x[%d] = %d\n", i, x[i]);
return (0);
}
お礼
ありがとうございます。