1.如何判断闰年?(①能被4整除但不能被100整除的年份②能被400整除的年份)
#include <stdio.h>
int main()
{
int year;
printf("please input year:\n");
scanf("%d",&year);
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
printf("%d is runnian\n",year);
else
printf("%d is not runnian\n",year);
return 0;
}
2.如何判断一个素数?如何判断100~200之间的素数?(除了1和它本身以外,不能被其他正整数整除)
#include <stdio.h>
int main()
{
int i,j = 2;
for(i = 100; i <= 200; i++)
{
for(j = 2; j < i; j++)
{
if(i % j == 0)
break;
else if(j == i -1)
printf("%d\n",i);
}
return 0;
}
3.求两个数的最大公约数,最小公倍数
#include <stdio.h>
int main()
{
int i, num1, num2, min, max;
printf("please int two integers:\n");
scanf("%d%d",&num1, &num2);
min = (num1 > num2) ? num2 : num1;
for(i = 1; i <= min; i++)
{
if((num1 % i == 0) && (num2 % i == 0))
max = i;
}
printf("big gongyueshu is %d\n",max);
printf("small gongbeishu is %d\n",(num1 * num2 / max));
return 0;
}
4.设计一个计算器程序
#include <stdio.h>
int main()
{
int num1,num2;
char ch;
printf("begin calculate:\n");
scanf("%d%c%d",&num1,&ch,&num2);
switch(ch)
{
case '+':
printf("%d\n",num1 + num2);
break;
case '-':
printf("%d\n",num1 - num2);
break;
case '*':
printf("%d\n",num1 * num2);
break;
case '/':
printf("%d\n",num1 / num2);
break;
default:
printf("input error!\n");
}
return 0;
}
5.设计一个日历程序,输入年月日,输出第多少天
#include <stdio.h>
int main()
{
int year,month,day;
int sum= 0;
int i;
int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf("please input date:\n");
scanf("%d%d%d",&year,&month,&day);
for(i = 1; i < month; i++)
{
sum = sum + a[i - 1];
}
sum = sum + day;
if(month <= 2)
printf("第%d天\n",sum);
else
{
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
printf("第%d天\n",sum = sum + 1);
else
printf("第%d天\n",sum);
}
return 0;
}
6.把一个三位数整数逆序输出
#include <stdio.h>
int main()
{
int a,i;
printf("please input 3位整数:\n");
scanf("%d",&a);
for(i = 0; i < 3; i++)
{
printf("%d",a%10);
a = a/10;
}
printf("\n");
return 0;
}
7.求1~100的和
#include <stdio.h>
int main()
{
int i,sum = 0;
for(i = 1; i <= 100; i++)
{
sum += i;
}
printf("%d\n",sum);
return 0;
}
8.200~300之间不能被3整除的数,五个一行输出
#include <stdio.h>
int main()
{
int i,j = 0;
for(i = 200; i <= 300; i++)
{
if(i % 3 == 0)
{
printf("%4d",i);
j++;
}
if(j == 5)
{
printf("\n");
j = 0;
}
}
printf("\n");
return 0;
}
9.统计1~n有多少个9
#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
int n = 0;
int temp = 0;
printf("please input an integer num:\n");
scanf("%d",&n);
for(i = 1; i <= n; i++)
{
temp = i;
while( temp != 0)
{
if(temp % 10 == 9)
{
count++;
}
temp = temp / 10;
}
}
printf("count=%d\n",count);
return 0;
}
10.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,pl1,pl2,i,b;
printf("please input a,pl1,pl2:\n");
scanf("%d%d%d",&a,&pl1,&pl2);
if(pl1 > 32 || pl2 > 32 || pl1 > pl2)
{
printf("ERROR\n");
exit(1);
}
for(i = pl1; i <= pl2; i++)
{
b = a >> (i - 1);
printf("%d",b & 1);
}
printf("\n");
return 0;
}