作者:张煜
====================================================================================
这是我们系主任上次留下来的作业题目
对于这个题目我个人觉得还是比较考验对于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;
}