第2章 算法——程序的灵魂
例2.1 求1×2×3×4×5
例2.2 有50个学生,要求输出成绩在80分以上的学生的学号和成绩。
例2.3 判定2000---2500年中的每一年是否为闰年,并将结果输出。
例2.4 求1-2/1+3/1-4/1+...+99/1-100/1。
例2.5 给出一个大于或等于3的正整数,判断它是不是一个素数。
例2.1 求1×2×3×4×5
#include<stdio.h>
int main()
{
int i,p;
p=1;
i=2;
while(i<=5)
{p=p*i;
i=i+1;
}
printf("%d\n",p);
}
运行结果如下:
例2.2 有50个学生,要求输出成绩在80分以上的学生的学号和成绩。
#include<stdio.h>
int main()
{
int i,g[50],n[50];
i=0;
while(i<50)
scanf("%d,%d",&g[i],&n[i]);
{
if(g[i]>=80)
printf("%d,%d\n",n[i],g[i]);
i=i+1;
}
return 0;
}
例2.3 判定2000---2500年中的每一年是否为闰年,并将结果输出。
#include <stdio.h>
int main()
{
int i;
for(i=2000;i<=2500;i++)
{
if((i%4==0&&i%100!=0)||i%400==0)
{
printf("%d是闰年\n", i);
}
else
{
printf("%d不是闰年\n", i);
}
}
return 0;
}
结果为:
例2.4 求1-2/1+3/1-4/1+...+99/1-100/1。
#include<stdio.h>
int main()
{
int sign=1;
double deno=2.0,sum=1.0,term;
while (deno<=100)
{
sign=(-1)*sign;
term=sign*(1/deno);
sum=sum+term;
deno=deno+1;
}
printf("%f\n",sum);
return 0;
}
结果如下:
例2.5 给出一个大于或等于3的正整数,判断它是不是一个素数。
#include<stdio.h>
int main()
{
int n,i;
printf("请输入一个大于或等于3的正整数:");
scanf("%d",&n);
while(n<3)
{
printf("data error.please enter again!");
scanf("%d",&n);
}
for(i=2;i<n;i++)
if(n%i==0)
break;
if(i<n)
printf("%d不是一个素数\n",n);
else
printf("%d是一个素数\n",n);
return 0;
}
结果如下: