| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2312 人关注过本帖
标题:对n个输入数按绝对值从小到大排序后输出
只看楼主 加入收藏
浩然
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-11-20
收藏
 问题点数:0 回复次数:1 
对n个输入数按绝对值从小到大排序后输出
题目要求:编程,对n个输入数按绝对值从小到大排序后输出(运行时先输入n的值,然后用malloc函数为数组动态分配存储单元)。
我编的程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{float *p,temp;int i,j,n;
scanf("%d",&n);
p=(float *)malloc(n);
for(i=0;i<n;i++)
scanf("%f",&p[i]);
for(i=0;i<n-1;i++)
for(j=i;fabs(p[j])>fabs(p[j+1]);j--)
{ temp=p[j];p[j]=p[j+1];p[j+1]=temp;}
for(i=0;i<n;i++)printf("%f\n",p[i]);
}
出现的问题是:运行后能出现正确的结果,但是停不下来,在关闭结果显示框时无反应,出现一段时间的死机,而后被强制结束。
请问问题出在哪里,能出现正确的结果,但是程序却无法停下来。
哪位朋友帮我解决一下,非常感谢。
搜索更多相关主题的帖子: 绝对值 从小到大 输出 输入 
2006-12-22 11:47
xianlin_lea
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用浩然在2006-12-22 11:47:47的发言:
题目要求:编程,对n个输入数按绝对值从小到大排序后输出(运行时先输入n的值,然后用malloc函数为数组动态分配存储单元)。
我编的程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{float *p,temp;int i,j,n;
scanf("%d",&n);
p=(float *)malloc(n);\*此处的分配似乎有误 n 为一整形数,
\* 则此处表示一固定长宽且并不是容纳n个实形数所需要的单元吧!

for(i=0;i<n;i++)
scanf("%f",&p[i]);
for(i=0;i<n-1;i++)
for(j=i;fabs(p[j])>fabs(p[j+1]);j--)
{ temp=p[j];p[j]=p[j+1];p[j+1]=temp;}
for(i=0;i<n;i++)printf("%f\n",p[i]);
}
出现的问题是:运行后能出现正确的结果,但是停不下来,在关闭结果显示框时无反应,出现一段时间的死机,而后被强制结束。
请问问题出在哪里,能出现正确的结果,但是程序却无法停下来。
哪位朋友帮我解决一下,非常感谢。


2006-12-22 12:08
快速回复:对n个输入数按绝对值从小到大排序后输出
数据加载中...
 
   



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

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