

10個の数字を入力させ、その入力した数字と、昇順結果が出力させるプログラムを作成したのですが、以前のように二回同じことを聞かれることはなくなったけれど、昇順の結果がおかしくなってしまいます。  
私は以下のようにプログラムしました。

[code]

    #include <stdio.h>
    #define NUMBER 10
    
    void swap(int *px,int *py)
    {
        int temp=*px;
        *px=*py;
        *py=temp;
    }
    
    void readIntArray(int a[], int size)
    {
        int i;
        for(i=0;i<size;i=i+1) {
            printf("%d 番目? ", i+1);
            scanf("%d", &a[i]);
        }
    }
    
    void printIntArray(int a[], int size)
    {
        int i;
        for(i=0;i<size;i=i+1) {
            printf("%d ", a[i]);
        }
        printf("\n");
    }
    
    void bsort(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(&a[j],&a[j-1]);
    }
    
    int main(void)
    {
        int i;
        int data[i],point[NUMBER];
    
        printf("%d個のデータを入力してください。\n",NUMBER);
    
        readIntArray(data,NUMBER);
        printIntArray(data,NUMBER);
    
        puts("昇順にソートしました。");
        bsort(point,NUMBER);
        for(i=0;i<NUMBER;i++)
            printf("%d番:%d\n",i+1,point[i]);
        return 0;
    
    }
    
[/code]

＜結果＞

[code]

    $ ./a.out
    10個のデータを入力してください。
    1 番目? 10
    2 番目? 9
    3 番目? 8
    4 番目? 7
    5 番目? 6
    6 番目? 5
    7 番目? 4
    8 番目? 3
    9 番目? 2
    10 番目? 1
    10 9 8 7 6 5 4 3 2 1 
    昇順にソートしました。
    1番:-1386554768
    2番:-1386554691
    3番:0
    4番:0
    5番:0
    6番:1
    7番:21950
    8番:21950
    9番:32578
    10番:151521696
    
[/code]

どの部分がおかしいのでしょうか。回答よろしくお願いします。


CC BY-SA 4.0
2020-10-05T05:53:48.907
70925
2020-10-05T07:57:24.500
2020-10-05T06:09:38.650
3060
41837
question
c
昇順の結果がおかしくなってしまいます


> int data[i],point[NUMBER];

このときに、iにはなにが入ってるのか考えてみればどうでしょうか。  
ローカル変数にはでたらめな値が入ります


CC BY-SA 4.0
2020-10-05T07:25:41.237
70928
2020-10-05T07:25:41.237
27481
70925
answer


明日のための第１歩：やっぱりデバッガの使い方を覚えましょう。  
明日のための第２歩：コンパイルオプション「警告レベル」を上げてみましょう。コンパイラが「ちょっとおかしい」と判断したところに警告が出ます。その警告を無視せずに、なぜ警告になっているのか理解し修正できるようになると開発効率がアップします。

回答：  
入力を受け付けているのは `data`  
ソートして表示しているのは `point`


CC BY-SA 4.0
2020-10-05T07:57:24.500
70930
2020-10-05T07:57:24.500
8589
70925
answer