2.3 简单的算法举例
求1×2×3×4×5
#include<stdio.h>
int main(){
int i=0;
int sum=1;
for(i=1;i<=5;i++){
sum*=i;
}
printf("%d\n",sum);
return 0;
}
求1×3×5×7×9×11
#include<stdio.h>
int main(){
int i=0;
int sum=1;
for(i=1;i<=11;i+=2){
sum*=i;
}
printf("%d\n",sum);
return 0;
}
#include<stdio.h>
int main(){
int i=0;
int sum=1;
for(i=1;i<=6;i++){
sum*=(2*i)-1;
}
printf("%d\n",sum);
return 0;
}
结构体的使用 输出成绩在80分以上的学生的学号和成绩
#include<stdio.h>
struct Stu{
int score;
int sno;
};
int main(){
struct Stu arr[2]={90,1,66,2};
// arr[0].score=90;
// arr[0].sno=1;
// arr[1].score=66;
// arr[1].sno=2;
int i=0;
for(i=0;i<2;i++){
if(arr[i].score>=80){
printf("%d %d\n",arr[i].sno,arr[i].score);
}
}
return 0;
}
判定2000——2500年中的每一年是否为闰年 并将结果输出
#include<stdio.h>
int main(){
int i=0;
for(i=2000;i<=2500;i++){
if(i%400==0||(i%4==0&&i%100!=0)){
printf("%d ",i);
}
}
return 0;
}
求1-1/2+1/3+....+1/99-1/100
#include<stdio.h>
int main(){
int sign=1;
double deno=2.0,sum=1.0,term;
while(deno<=100){
sign=-sign;//控制正负
term=sign/deno;//获得 分数值
sum+=term;//加上分数值
deno+=1;//控制循环移动
}
printf("%lf\n",sum);
return 0;
}
#include<stdio.h>
int main(){
double a=0;
double b=0;
double i=0;
for(i=1;i<=100;i+=2){
a+=(1.0/i);
}
for(i=2;i<=100;i+=2){
b+=(1.0/i);
}
printf("%lf",a-b);
return 0;
}
#include<stdio.h>
int main(){
double sum=0;
int i=1;
double sign=1.0;
for(i=1;i<=100;i++){
sum+=sign/i;
sign=-sign;
}
printf("%lf\n",sum);
return 0;
}
给出一个大于或等于3的正整数 判断它是不是一个素数
#include<stdio.h>
#include<math.h>
int panduan(int n){
int i=2;
for(i=2;i<=sqrt(n);i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n=0;
while(scanf("%d",&n)!=EOF){
if(panduan(n)){
printf("Yes\n");
}else{
printf("No\n");
}
}
return 0;
}
2.4算法的特性
一个有效算法应具有
有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性