1.判断这天是这一年的第几天。
# include<stdio.h>
int main()
{
int year, month, day, a, sum;
printf("请输入你想查的年月日(例如:2020,1,1):\n");
scanf("%d,%d,%d", &year, &month, &day);
switch(month)
{
case 1:sum= 0; break;
case 2:sum= 31; break;
case 3:sum= 59; break;
case 4:sum= 90; break;
case 5:sum= 120; break;
case 6:sum= 151; break;
case 7:sum= 181; break;
case 8:sum= 212; break;
case 9:sum= 243; break;
case 10:sum= 273; break;
case 11:sum= 304; break;
case 12:sum= 334; break;
default:printf("data error"); break;
}
sum= sum+ day;
if(year%400== 0 || (year%4== 0 && year%100!= 0))
{
a= 1;
}
else
{
a= 0;
}
if(a=1 && month> 2)
sum= sum+ 1;
printf("\n这是%d年的第%d天\n", year, sum);
return 0;
}
2.向1*1正方形中投掷点落于圆中的个数求圆周率Π。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int count= 0, n;
float x, y, distance;
printf("请输入投掷次数:"); /*次数越大越准确,但执行时间会更长*/
scanf("%d", &n);
for(int i= 1; i<= n; i++)
{
x= (float) rand() / RAND_MAX; /*在0到1中随机选取一个浮点数*/
y= (float) rand() / RAND_MAX;
distance= (x-1)*(x-1)+(y-1)*(y-1);
if(distance<=1)
{
count++;
}
else
{
count=count;
}
}
printf("圆周率Π=%2f\n", (4.0*count)/n);
return 0;
}
3.rand()使用。
rand函数的使用
-
如果想要表示一个数是从0开始到最大值的,比如说,想要产生一个0-99之间的随机数,那么用法如下
int num = rand() % 100;
-
如果想要产生一个数是从1开始到最大值的,比如说,想要产生一个1-100之间的随机数,那么用法如下
int num = rand() % 100 + 1;
-
需要注意最后+1和不+1的区别,+1的最小值是1,不+1的最小值是0