请高手,帮我解释下这种算法的含义,谢谢

如果该求1×3×5×7×9×11,算法也只需做很少的改动:
S1: 1→t
S2: 3→i
S3: t×i→t
S4: i+2→t
S5:若i≤11, 返回S3,否则,结束。
该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。
思考:若将 S5写成:S5:若i<11, 返回S3;否则,结束。
【例2.2】有50个学生,要求将他们之中成绩在80分以上者打印出来。
如果,n表示学生学号,ni表示第个学生学号;g表示学生成绩,gi表示第个学生成绩;
则算法可表示如下:
S1: 1→i
S2: 如果gi≥80,则打印ni和gi,否则不打印
S3: i+1→i
S4:若i≤50, 返回S2,否则,结束。

额。这题目高手都不会来答的,因为太过简单了,建议楼主深入学习一门语言,如C语言;
第一题是个简单的循环,首先让t=1;i=3,然后让t=t*1,然后是i=i+2(不是t=i+2,楼主写错了);然后判断i<11?是则回到s3继续t=t*1,i=i+2;以上过程即1*3*5*7*9*11;若改成i<11则少乘个11;用C语言写成:
#includes<stdio.h>
void main()
{
int i,t;
t=1;
i=3;
do
{
t=t*i;
}while(i<=11);
printf("%d",t);
}

2.同一,s1和s3,s4合起来组成1-50个人的循环;然后s2是判断是否过80分,是就打印,
用C语言:
#include<stdio.h>
void main()
{
int i,g[50],n[50];
for(i=0;i<50;i++) /*输入50人的学号和成绩*/
scanf("%d,%d",&n[i],&g[i]);
for(i=0,i<50;i++) /*判断是否>=80,是就打印*/
{
if(g[i]>=80)
printf("%d,5d",n[i],g[i]);
}
}

我也没试调,lz可用turbo运行一下。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-29
汗,,,,跟我们今天作业是同样的两道题。。。
相似回答