我开始学C不久,还只学到指针,刚开始学习上机!
最近为一个很简单的问题难住了,郁闷的要死~~
事情是这样的~~~~
程序目的:
使用冒泡法进行排序,一个数组,上限100,用户自己输入需要排序的个数!可循环使用!
程序写好之后,用TURBOC 2.0编译
没有错误没有警告,但运行结果完全不同!
以下是源码:
#include "stdio.h"
main()
{
int i,n,temp;
int a[100];
char d;
printf("确定使用吗?\n");
scanf("%c",&d);
while((d=='y')||(d=='Y')) /*判断是否使用*/
{
printf("输入需要排序的个数:\n");
scanf("%d",&n);
while(n>100) /*判断是否越界*/
{
printf("数量太大,请重新输入:\n");
scanf("%d",&n);
}
printf("输入需要排序的数:\n");
for(i=0;i<n;i++)
scanf("%d",a[i]);
for(i=0;i<n;i++) /*判断排序的次数*/
for(i=n-1;i>=0;i--) /*进行排序,每次将一个最小的数上移*/
{
if(a[i]<a[i-1])
{
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
}
}
printf("结果:\n");
for(i=0;i<n;i++) /*数据的输出*/
{
printf("%d\t",a[i]);
if((i!=0)&&(i%5==0)) /*每行输出5个*/
printf("\n");
}
printf("\n\n\n"); /*空三行,目的使程序清楚些*/
getch(); /*等待用户确认*/
printf("还需要使用吗?");
scanf("%c",&d);
}
}
上面程序中的中文在我编译时全部是英文的,没有中文字符,注释也没有!
编译好之后使用时,运行到输出结果时出错,图面显示:
结果:
然后按任意键他就退出了,没有显示结果数据,也没有循环使用的效果~~~根本没有运行最后一段!
请问大家知道吗?好急~~~
我怎么看也看不出程序有什么错,问老师,结果~~~
他说:"我觉得没错啊!"
汗~~~~~~