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

来源:互联网 发布:python数据处理豆瓣 编辑:程序博客网 时间:2024/05/01 06:10

作者:张煜


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

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

对于这个题目我个人觉得还是比较考验对于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

0 0