C语言编程:从键盘输入一个班学生某门课程的成绩,输入成绩为负值时,输入结束,分别对成绩做如下处理

2025-02-01 00:02:20
推荐回答(3个)
回答1:

#include

int a[100];

void bubble(int n)    //冒泡排序n个元素

{int i,j,t;

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

void insert1(int n,int x)    //降序插入第n个元素x

{int i;

for(i=n-1;i>0&&a[i-1]

a[i]=a[i-1];

a[i]=x;  

}

void insert2(int n,int x)    //升序插入第n个元素x

{int i;

for(i=n-1;i>0&&a[i-1]>x;i--)

a[i]=a[i-1];

a[i]=x;  

}

int main()

{int i,n,x;

for(n=0;;n++)

{scanf("%d",&a[n]);

if(a[n]<0)break;

}

bubble(n);

printf("排序后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n要插入的数:");

scanf("%d",&a[n++]);

insert1(n,a[n-1]);

printf("插入后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

for(i=2;i<=n;i++)

insert2(i,a[i-1]);

printf("逆序后:\n");

for(i=0;i

printf("%d ",a[i]);

printf("\n");

return 0;

}

回答2:

#include  
 
void bubbleSort(int array[], int length);
 
int main() { 
    int array[20], length, i, j;
    int tmp;
 
    for (i = 0; ; ++i) {
        scanf("%d", &tmp);
        if (tmp < 0) {
            break;
        }
        array[i] = tmp;
    }
    length = i;
    
    //(1)
    putchar('\n');
    bubbleSort(array, length);
    for (i = 0; i < length; ++i) {
        printf("%d ", array[i]);
    }
    putchar('\n');
    
    //(2)
    putchar('\n');
    scanf("%d", &tmp);
    for (i = 0; i < length; ++i) {
        if(array[i] < tmp) {
            break;
        }
    }
    for (j = length; j > i; --j) {
        array[j] = array[j-1];
    }
    array[i] = tmp;
    ++length;
    for (i = 0; i < length; ++i) {
        printf("%d ", array[i]);
    }
    putchar('\n');
    
    //(3)
    putchar('\n');
    for (i = 0; i <= length/2; ++i) {
        tmp = array[i];
        array[i] = array[length-1-i];
        array[length-1-i] = tmp;
    }
    for (i = 0; i < length; ++i) {
        printf("%d ", array[i]);
    }
    putchar('\n');
 
    return 0;
}
 
void bubbleSort(int array[], int length) {
    int i, j, tmp;
 
    for (i = 0; i < length-1; ++i) {
        for (j = 0; j < length-1-i; ++j) {
            if (array[j] < array[j+1]) {
                tmp = array[j];
                array[j] = array[j+1];
                array[j+1] = tmp;
            }
        }
    }
}

 

回答3:

算了,不帮助你啦!!!