输入N个数字,然后将其大于0的数无重复的排序输出
2014-03-05 20:48
411 查看
作者:张煜
====================================================================================
这是我们系主任上次留下来的作业题目
对于这个题目我个人觉得还是比较考验对于c语言的掌控力的,虽然比较片面但还是有很大的可取之处的
对于c语言初学者来说还是比较难的.
====================================================================================
现在我么就来解析这个函数:
1.首先要设定一个可以保存的数组
2.我们要考录N的输入
3.将其与0进行比较并保存到新的数组之中
4.去除重复的数
5.排序
====================================================================================
对于这个函数可以直接用数组进行操控,也可以用指针
我在这里使用了指针来进行操作.代码如下:
如需转载请声明原创地址:http://blog.csdn.net/u012485183/article/details/20567653
====================================================================================
这是我们系主任上次留下来的作业题目
对于这个题目我个人觉得还是比较考验对于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
相关文章推荐
- 输入具有n个数字的序列,然后去除重复,并从小到大排序
- 作业-创建数组随机生成30个不重复数字进去-在随机出来5个-然后排序输出
- s1--输入10个数,去除重复的,然后排序输出
- HW输入字符串长度,字符串,计数m。从前往后计数,当数到m个元素时,m个元素出列,同时将该元素赋值给m,然后从下一个数计数循环,直到所有数字都出列,给定的数全部为大于0的数字。输出出队队列。
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
- 在主函数中输入10个等长的字符串,用另一函数对它排序。然后在主函数输出10个已排好序的字符串。
- 任意输入几个数字,然后将他们输出
- 将10个数输入,去掉重复的数,然后顺序输出
- 现在输入n个数字,以逗号分开,然后可选择升或者降序排序,按提交键在另一个页面显示
- 在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串
- 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%100000000
- 接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- 在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串
- 在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
- 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,
- 【C语言】求旋转数组的最小数字,输入一个递增排序的数组的一个旋转,输出其最小元素
- 输入三个整数,将他们排序然后输出中间那个数
- 输入一串字符,要求数字从小到大,字母从a到z排序,输出字母和数字的排序结果。
- 输入10个数字,然后逆序输出
- 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007