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