C语言简单算法
例 1判定200-2005年中的每一年是否闰年,将结果输出。
例2
求1-1/2+1/3-1/4+·······+1/99-1/100
例3
对一个大于或等于3的正整数,判断它是不是一个素数。
补充:编译环境是 win-tc
例 1判定200-2005年中的每一年是否闰年,将结果输出。
例2
求1-1/2+1/3-1/4+·······+1/99-1/100
例3
对一个大于或等于3的正整数,判断它是不是一个素数。
补充:编译环境是 win-tc
答案:1、闰年#include<stdio>
main()
{
int year;
printf("是闰年的有:\n"):
for(year=200;year<=2005;year++)
{if(year/400==0 || year/4==0 && year/100!=0)
printf("%6d年",year);
else
printf("%6d年",year);}
}
2、加法
#include<stdio.h>
void main()
{int i,t;
float sum,n;
sum=1;
i=2;
t=-1;
while(i<=100)
{n=t/i;
sum=sum+n;
t=-t;
i++;
}
printf("sum=%f",sum);
}
3、素数
#include<stdio.h>
#include<math.h>#define N 101
void main()
{
int i,j,line,a[N];
for(i=2;i<N;i++)
a[i]=i;for(i=2;i<sqrt(N);i++)
for(j=i+1;j<N;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)a[j]=0;
}
printf("\n");
for(i=2,line=0;i<N;i++)
{
if(a[i]!=0)
{
printf("%5d",a[i]);
line++;
}
if(line==10)printf("\n");
line=0;
}}
}
如果想改范围可以改之前的宏定义#define N x (X为你想要的最大值)
希望学习快乐!
第一题:
已经修改了. 输出2000-2005每一年是否闰年.
#include <stdio.h>
void main()
{
int i;
for(i=2000;i<=2005;i++)
{
if(i % 4 == 0 && (i % 100 != 0 || i % 400 == 0)) //判断闰年.能被4整除,不能被100整除或者能被400整除
printf("%d is a leep year\n",i);
else
printf("%d is not a leep year\n",i);
}
}第二题:
#include <stdio.h>
void main()
{
int i,flag = 1; //flag作为符号位.一直在正负之间徘徊...
float sum = 0;for(i = 1; i <= 100; i++)
{
sum = sum + 1.0 / i * flag;
flag = flag * -1; //将符号位取反.
}
printf("result = %f\n", sum);
}第三题:
这题应该是输入一个大于等于3的数,判断这个数是不是素数吧?
如果不是的话请联系我. 可以帮你修改.
#include <stdio.h>
#include <math.h>void main()
{
int n,i,k;
while(1)
{
scanf("%d",&n);
if(n >= 3) break; //如果输入的数大于等于3.就执行判断这个数是否素数.
printf("Please re-enter\n");
//否则要求用户重新输入.
}k=sqrt(n);
for(i=2;i<=k;i++)
{
if(n%i==0) break;
}
if(i>k)
printf("%d is a prime number\n",n);
else
printf("%d is not a prime number\n",n);
}随便写写有错请修正
//第一个
for(int i=200;i<2009;i++){
if(i%4==0&&i%100!=0 || i%400==0){ //闰年判断条件与4取余得0且与100取余不为0或者与400取余为0
//输出是素数
}
}
//第二个
float result=0;//结果
int j=1;
for(int i=1;i<=100;i++){
result=result+j/i;
j=j*-1;
}
//输出result
//第三题
//输入一个数num(int)
int i=2,j=num/2;
for(;i<j;i++){
if(num%i==0){
break;
}
}
if(i>=j){
//输出是素数
}
一下都给出关键部分代码:
1
int year;
for(year=200;year<=2005;year++)
{
if(year%4==0)
{
printf("%d is leap year\n",year);
}
}
2.
double i=-1,sum=0,j=1;
for(j=1;j<=100;j++)
{
i=-i;
sum+=i/j;
}
printf("SUM=%f\n",sum);
3.
int n,i;
printf("Please input a number(>=3)");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
if(n%i==0)
break;
}
if(i==n)
printf("%d is a prime number\n",n);
else
printf("%d is not a prime number\n",n);