我的第一个''出了什么问题?冒泡排序程序?

时间:2016-03-18 17:57:40

标签: c

我只是想知道它有什么问题,以及如何解决它。

看起来每件事情都是正确的,但是当你运行.exe时它每次都会崩溃

#include <stdio.h>
#include <stdlib.h>

// first list filling function:

void  T_filling(int T[],int n){
    int i;
    for(i=1 ;i<=n ;i++){
        printf("enter the number:",i+1);
        scanf("%d",&T[i]);
    }
}

//then the main algorithm:

int main()
{
    int j,k,l;
    int n,x;
    // you can order up to 100 integer number

    int T[100];
    printf("This program is to order numbers decreasingly\n");
    printf("how many numbers you want to order?\n");

    // scanning the number of elements in the list

    scanf(n);
    //filling the list
    T_filling(T[100],n);
    //bubble sort Algorithm
    for(j=1;j<=n-1;j++){
        for(k=1;k<=n-j;k++){
            if(T[k+1]>T[k]){
                x=T[k];
                T[k]=T[k+1];
                T[k+1]=x;
            }
        }
    }
    for(l=1;l<=n;l++){
        //printing the result on screen
        printf("%d;",T[l]);
    }
    printf("\n");
    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您没有使用scanf并正确地将array传递给function

请按照以下方式修改代码中的这些行,您的程序将按预期工作。

scanf("%d", &n);
//filling the list
while(n > 100)
{
    printf("Exceeding size, please re enter the size");
    scanf("%d", &n);
}
T_filling(T,n);

希望这有帮助。