标题:小人不才,实在想不出了.
取消只看楼主
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
 问题点数:0 回复次数:8 
小人不才,实在想不出了.

我开始学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);
}
}

上面程序中的中文在我编译时全部是英文的,没有中文字符,注释也没有!

编译好之后使用时,运行到输出结果时出错,图面显示:

结果:

然后按任意键他就退出了,没有显示结果数据,也没有循环使用的效果~~~根本没有运行最后一段!

请问大家知道吗?好急~~~

我怎么看也看不出程序有什么错,问老师,结果~~~

他说:"我觉得没错啊!"

汗~~~~~~

搜索更多相关主题的帖子: 小人 int temp main 
2006-04-29 22:29
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
楼上的兄弟(可以这样称呼吗?)

  我是个新手,有很多东西都还不懂还在学习中,所以有些比较冒昧的问题还请原谅.只是这个程序我看了很多遍了,实在是找不出来,三楼的兄弟,我不知道你所说的那个把for语句中的0改成1,不知道是哪个for语句中的,还有,我觉得在for语句中应该没错吧,数组下限下标不是0吗?

还望你再指点一下,谢谢~~~
2006-04-30 12:30
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
楼上的

太谢谢了,知道一点了,一个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;
}
}

中的i全部改成K,一个新的变量,定义过了,但他的结果还是有些错误,会输出,格式也对,但输出的全是0,这又是为何啊?
真的很感谢
2006-04-30 12:45
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 

不好意思哈
只是兄弟,我不知道错误的话不好进步啊,我真的那么菜吗??
还有你的那个程序我调试了下,你所做的是对随机数进行排序吗?只要输入一个数就直接给出结果了~~
我想对自己输入的数进行排序.

哦,你的程序对我而言有些地方有些难啊,比如那个包含 time.h的
那是一个什么头文件?
我真的好想知道自己的错误所在



小弟真的不才~~~

2006-04-30 13:09
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
对不起~~~
我只是在求教,因为一下子弄不明白~~而且我是看一次他们方案我就调试一次的,因为没成功,所以~~
我又有问题了~~

楼上的大哥,我刚才在排序之前就先对数组中的数进行了输出,发现,在我输入的时候,数组中的数就已经不是我所输入的数了~~
我想,错误真的很多
C这么难嘛~~~
2006-04-30 13:20
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
啊哈哈~~~
大哥哈,谢谢了,这真的是个初级错误哦,浪费你这么多时间真的对不起~~~万分感谢~~
只是`~
呵呵
还有一点小小的问题
排序方面是没有问题了,可是在循环使用这里不对,我本意是在一次排序结束后问:"还需要继续使用吗?"
但是运行的时候这句话会出现,可是不会等待用户确认,任意键结束了~~这是为何??
如果去掉那个
getch();
的话,他输出结果之后按任意键就关闭了,Why??
最后的问题了~~
谢谢
2006-04-30 13:30
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
谢谢,太谢谢了!!!
为什么getch()
会没有用呢?

呵呵,我给你发短信了
我在Linux学习中~~~
2006-04-30 13:41
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
神vLinux飘飘

真的很强~~~
2006-04-30 13:42
雪不归
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-29
得分:0 
What???
2006-04-30 13:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-61210-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.926795 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved