统计n个随机数(随机0~10),每出现一次就用*号在数字下面写一次*【c语言实现】
2014-01-18 16:50
369 查看
大一学c,后面就一直荒废最基础的c了
题目来自书籍:一站式学习c编程
要求实现以下效果(随机数随机生成)
解决思路:先一行一行的pirnt *,到9换行
本来是用循环体for(i=0;i<N;i++)来实现print_star(后来发现循环的上界不能是n,因为计数器+1,并不代表print的*也加1,所以如果用for循环只能N改成一个相对大的数字,造成计算时间的浪费),然后就一直绕圈子
题目来自书籍:一站式学习c编程
要求实现以下效果(随机数随机生成)
#include <stdio.h> #include <stdlib.h> #define N 20 int a ={0}; int histogram[10]={0}; int print_star(void){ int i; int tag=0; while(tag<N){ if(histogram[i%10]>0){ histogram[i%10]--; printf("*\t"); tag++; } else{ printf("\t"); } if(i%10==9){ printf("\n"); } i++; } } int gen_random(void){ int i; srand(time(NULL)); for(i=0;i<N;i++){ a[i]=rand()%10; } } int main(void){ printf("0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t\n"); int i; gen_random(); for(i=0;i<N;i++){ histogram[a[i]]++; } print_star(); }
解决思路:先一行一行的pirnt *,到9换行
本来是用循环体for(i=0;i<N;i++)来实现print_star(后来发现循环的上界不能是n,因为计数器+1,并不代表print的*也加1,所以如果用for循环只能N改成一个相对大的数字,造成计算时间的浪费),然后就一直绕圈子
相关文章推荐
- 关于C语言中内嵌汇编指令的一个小细节
- c++中的while(cin)问题
- 在Win32下用C++实现多线程读写锁
- Logistic Regression(c++)源代码下载
- C指针原理(55)-C语言-pvm并行计算
- c语言递归的一些总结
- 第三次实现Logistic Regression(c++)_测试
- C++内存分配秘籍—new,malloc,GlobalAlloc详解
- 第三次实现Logistic Regression(c++)_实现(二)
- [POJ 1005] I Think I Need a Houseboat C++解题
- [POJ 1004] Financial Management C++解题
- [POJ 1003] Hangover C++解题
- code block与VC++下相对路径的不同写法
- [POJ 1002] 487-3279 C++解题报告
- [POJ 1001] Exponentiation C++解题报告 JAVA解题报告
- [POJ 1000] A+B Problem 经典水题 C++解题报告 JAVA解题报告
- LAPACK的C/C++接口及代码实例
- LAPACK的C/C++接口及代码实例
- C语言中的typeof关键字
- C语言实现打印乘法口诀表