c语言问题 1.编写一个程序,完成以下功能: (1)输入10个学生的单科成绩(0-100之间) (2

2025-01-20 07:26:01
推荐回答(2个)
回答1:

#include
void sort(int c[], int n)
{
int i, j, buf;
for(i = 0; i < n; i++){
for(j = i + 1; j < n; j++){
if(c[i] > c[j]){
buf = c[i];
c[i] = c[j];
c[j] = buf;
}
}
}
}

void display(int c[], int n)
{
int i;
printf("output: ");
for(i = 0; i < n; i++){
printf("%4d", c[i]);
}
printf("\n\n");
}

int search(int c[], int n, int b)
{
int i;
for(i = 0; i < n; i++){
if(c[i] == b)
return (i+1);
}
return 0;
}
int insert(int c[], int n, int b)
{
int i, j, buf;
if(b > c[n-1]){
c[n] = b;
return 0;
}

for(i = 0; i < n; i++){
if(b < c[i]){
buf = c[i];
c[i] = b;
break;
}
}

for(j = n; j > i+1; j-- ){
c[j]= c[j-1];
}
c[j] = buf;
return 0;
}

int main()
{
int i, b, s, c[100];
printf("input:\n");
for(i = 0; i < 10; i++){
scanf("%d", &c[i]);

}
sort(c, i);
display(c, i);

while(1){
scanf("%d", &b);
if(b < 0 || b > 100){
break;
}else if((s = search(c, i, b))){
printf("site:%d\n", s);
}else{
insert(c, i, b);
display(c, ++i);
}
}
return 0;
}

回答2:

标准的排序问题。还是要自己做。不要总依靠别人,这样是学不好的。这个题目不是很难,多想想,相信你一定会成的..