您的位置:首页 > 其它

输入N个数字,然后将其大于0的数无重复的排序输出

2014-03-05 20:48 411 查看
作者:张煜

====================================================================================

这是我们系主任上次留下来的作业题目

对于这个题目我个人觉得还是比较考验对于c语言的掌控力的,虽然比较片面但还是有很大的可取之处的

对于c语言初学者来说还是比较难的.

====================================================================================

现在我么就来解析这个函数:

1.首先要设定一个可以保存的数组

2.我们要考录N的输入

3.将其与0进行比较并保存到新的数组之中

4.去除重复的数

5.排序

====================================================================================

对于这个函数可以直接用数组进行操控,也可以用指针

我在这里使用了指针来进行操作.代码如下:

#include<stdio.h>
int main()
{
int Total;
float *p;
float temp = 0;
int i, j, m, k = 0;
float num_s[100];
float new_s[100];

p = num_s;
printf("How many numbers would you want to statistic:");
scanf("%d",&Total);

for(i = 0;i < Total;i++ )
{
printf("Please input the NO.%d number:",i + 1);
scanf("%f", p++);
printf("\n");
}
p = num_s;

for(i = 0; i < Total; i++)
{
if(*p > 0)
new_s[m++] = *p;
p++;
}

for(i = 0; i < m; i++)
{
for( j = i + 1; j < m; j++)
if(new_s[i] = new_s[j])
for(k = i; k < m-1; k++)
{
new_s[k] = new_s[k+1];
m--;
}
}

for(i = 1; i < Total; i++)
{
for(j = 0; j < Total - i; j++)
if(new_s[j] > new_s[j+1])
{
temp = new_s[j];
new_s[j] = new_s[j+1];
new_s[j+1] = temp;
}
}

for(int i = 0; i < m; i++)
{
printf("%-6.1lf\n",new_s[i]);
}

return 0;
}


如需转载请声明原创地址:http://blog.csdn.net/u012485183/article/details/20567653
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐