发布网友 发布时间:2023-05-17 03:54
共5个回答
热心网友 时间:2023-09-11 18:33
你的程序会刷屏的原因是你的sort函数里面有个do while语句,你在主函数中制定style的值为a,那么while(style=='b');将会永远成立,就会永远执行do语句,而do里面又有printf语句,因此你运行时会不停的输出数据,便会出现刷屏现象,
其实你的程序还有其他小问题,下面是我改过之后的程序,已经运行没有问题了,你看一下:
#include<stdio.h>
#include<stdlib.h>
void sort(int a[],int n,char style)
{
int i,j,t;
if(style=='a')
{
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
else if(style=='b')
{
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
if(a[i]<a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
int main()
{
int a[10],n,i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
n=10;
sort(a,n,'a');
printf("排序后的成绩为:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
return 0;
}
以上是我的建议,如果还有疑问的话尽管提出来,我尽力帮你解决。
希望对你有所帮助。
热心网友 时间:2023-09-11 18:33
你这问题太大了。。。死循环不说。。你的代码写法也有问题 把你的for循环和if后面的条件用花括号括起来 再发出来问~~ 太乱了。。热心网友 时间:2023-09-11 18:33
sort方法里降序的标识参数为什么是'b'。。。追问...这个。。。水了 不可能就因为这个就无限循环了把。。。
热心网友 时间:2023-09-11 18:34
貌似你弄的无限循环了。。。热心网友 时间:2023-09-11 18:35
while(style=='b');