您的位置:首页 > 编程语言 > C语言/C++

【C语言】 计数、求和、求阶乘等简单算法

2012-04-29 13:00 477 查看
计数、求和、求阶乘等简单算法,此类问题都要使用循环,要注意根据问题确定循环变量的初值,终值或结束条件,更要注意用来表示计数,和,阶乘的变量的初值。

 

例:用随机函数产生100个[0,99] 范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数字并打印出来。

本题使用数组来处理, 用数组a[100]存放产生的100个随机整数,数组X[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在X[1]中,个位是2的个数存放在X[2]中,.....个位是0的个数存放在X[10]中。

 

/*
* main.c
*
*  Created on: 2012-4-29
*      Author: Lee
* Description: 用随机函数产生100个[0,99]范围内的随机整数,统计个位上数字分别为
* 1、2、3、4、5、6、7、8、9、0的数的个数并打印出来
*/

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int array[101]; // 声明接收[0,99]范围内随机产生的的100个随机整数的数组 array
int count[10];//声明统计个位数为1、2、3、....个数的数组 count
int i;//声明for循环中用于循环的变量i
int p;
for(i=0;i<=10;i++)//将count数组初始化为零,即将统计个位数的个数初始化为零
{
count[i]=0;
}
printf("随机数表\n");
srand((unsigned)time(0));//在调用rand()函数之前调用srand((unsigned)time(0)) 以time 函数值
//(即当前时间)作为种子数,保证rand函数产生数值的真正随机性
for(i=1;i<=100;i++)//生成100个随机整数
{
array[i] = rand()%100; // 获取一个[0,100)内的随机整数
printf("%4d",array[i]); // 以4位的宽度输出array[i]
if(0 == i%10)printf("\n"); //一行满10个数则换行
}
for(i=1;i<=100;i++)// 统计个位数的个数
{
p=array[i]%10;//获取个位上的数
if(0 == p) p =10;//如果个位上的数字为0 则将p 赋值为10 ,用x[10]存储个位为0的个数
count[p]=count[p]+1; // 个位数为p的相应数组值加1
}
for(i=1;i<=10;i++) //打印结果
{
p=i;
if(10 == i)p = 0;
printf("尾数为 %d 的个数 :%d\n",p,count[i]);
}
return 0;
}


 结果截图



 

备注: 关于rand()函数与srand()函数产生真正随机数的用法,另附文章详细说明

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 语言 c 存储