.
C 语言算法基础
2010-01-04 15:44:05 作者: dcedu 来源: 浏览次数: 30 网友评论 1 条
算法( Algorithm ):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一
个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、
输出什么结果)、采
算法( Algorithm ):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一
个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、
输出什么结果) 、采用什么结构、使用什么语句以及如何安排这些语句等。 通常使用自然语
言、结构化流程图、伪代码等来描述算法。
一、计数、求和、求阶乘等简单算法
此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,
更要注意用来表示计数、和、阶乘的变量的初值。
例:用随机函数产生 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] 。
void main()
{ int a[101],x[11],i,p;
for(i=0;i<=11;i++)
x[i]=0;
for(i=1;i<=100;i++)
{ a[i]=rand() % 100;
printf(\"%4d\",a[i]);
.
.
if(i%10==0)printf(\"\ \");
}
for(i=1;i<=100;i++)
{ p=a[i]%10;
if(p==0) p=10;
x[p]=x[p]+1;
}
for(i=1;i<=10;i++)
{ p=i;
if(i==10) p=0;
printf(\"%d,%d\ \",p,x[i]);
}
printf(\"\ \");
}
二、求两个整数的最大公约数、最小公倍数
分析:求最大公约数的算法思想: ( 最小公倍数 =两个整数之积 / 最大公约数 )
(1) 对于已知两数 m,n ,使得 m>n;
(2) m 除以 n 得余数 r ;
(3) 若 r=0 ,则 n 为求得的最大公约数,算法结束;否则执行