C语言 for()函数应用问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 21:51:37
#include<stdio.h>
#include<conio.h>
#define Num 10
void min(int x[]);
int main(void)
{
int a[Num], i;
char kebod;

printf("请输入学生的成绩(共10人):\n");
for(i=0;i<Num;i++)
{
printf("学生%d的成绩:",i+1);
scanf("%d",&a[i]);
}

do
{
printf("-------------------- \n 1. 成绩从低到高 \n 2. 成绩从高到低\n 3. 重新输入");

kebod=getch();
switch(kebod)
{
case '1': min(a); break;
case '2': break;
case '3': break;
}
}
while(kebod != '1' || kebod != '2' || kebod != '3');
}

void min(int x[])
{
int t,j,i;
for(j=0;j<Num;j++)
for(i=0;i<Num-j;i++)
if(x[i]>x[i+1])
{
t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
for(i=0;i<Num;i++)
printf("%d &#

for(j=0;j<Num;j++)
for(i=0;i<Num-j;i++)

改成

for(j=0;j<Num;j++)
for(i=0;i<Num-1-j;i++) //因为你后面要用x[i+1],不能越界的

你再看看冒泡法排序;

void min(int x[])
{
int t,j,i;
for(j=0;j<Num-1;j++) //添减一
for(i=0;i<Num-j-1;i++) //添减一
if(x[i]>x[i+1])
{
t=x[i];
x[i]=x[i+1];
x[i+1]=t;
}
for(i=0;i<Num;i++)
printf("%d \n",x[i]);
}