山东理工大学计算机C语言实验全六个答案
1●两个城市之间的地面距离
#include
#include //引用库函数
main() //主函数
{ //函数开始的标志
float pi=3.14, w,a,b,hd,l,wr;
scanf ("%f%f%f",&a,&b,&w);
hd=w*pi/180;
wr=6371*cos(hd);
l=2*pi*wr*fabs(a-b)/360;
printf ("%f\n",l);
}
2●求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。
#include
main()
{int y,a,n;
printf("请输入年份",y);
scanf("%d",&y);
a=(y-1)/4-(y-1)/100+(y-1)/400;
n=(y-1)*365+a;
printf("总共有%d天\n",n);
switch(1+n%7)
{
case 1:printf("星期一");break;
case 2:printf("星期二");break;
case 3:printf("星期三");break;
case 4:printf("星期四");break;
case 5:printf("星期五");break;
case 6:printf("星期六");break;
case 7:printf("星期七");break;
}
}
3●等额本金还款法
#include
int main()
{
float l=0,zl=0;int b,m; //l为利息 zl为总利息 b为每个月还款的本金 m为月份
b=600000/120;
printf("每个月还款的本金为%d元\n",b);
for(m=0; m<120; m++)
{
l=(600000-5000*m)*0.005;
printf("第%3d个月的利息为%-7.2f元\n",m+1,l);
zl=zl+l;
}
printf("总利息为元%-7.2f元\n",zl);
}
4●输入任意一个年份和月份,按以下格式输出该月份的公历日历。
要求由程序计算出来该月份的1日是星期几,并用循环控制打印。
#include
void main()
{
int year,num,m,i,j,n,sum1=0,sum2,sum;;//num是月天数 n是每月第一行应该空的个数 sum1是每一年所有当前月的总天数 sum2是所有当前年的总天数
printf("请输入年份:\n");
scanf("%d",&year);
printf("请输入月份:\n");
scanf("%d",&m);
if(year%4==0||(year%100!=0&&year%400==0))
{
switch (m)
{
case 12:sum1=sum1+30;
case 11:sum1=sum1+31;
case 10:sum1=sum1+30;
case 9:sum1=sum1+31;
case 8:sum1=sum1+31;
case 7:sum1=sum1+30;
case 6:sum1=sum1+31;
case 5:sum1=sum1+30;
case 4:sum1=sum1+31;
case 3:sum1=sum1+29;
case 2:sum1=sum1+31;
case 1:sum1=sum1+0;
}
}
else
{
switch(m)
{
case 12:sum1=sum1+30;
case 11:sum1=sum1+31;
case 10:sum1=sum1+30;
case 9:sum1=sum1+31;
case 8:sum1=sum1+31;
case 7:sum1=sum1+30;
case 6:sum1=sum1+31;
case 5:sum1=sum1+30;
case 4:sum1=sum1+31;
case 3:sum1=sum1+28;
case 2:sum1=sum1+31;
case 1:sum1=sum1+0;
}
}
//printf("月天数%d\n",sum1);
sum2=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400;
//printf("年天数%d\n",sum2);
sum=sum1+sum2;
//printf("总天数%d\n",sum);
switch(1+sum%7)
{
case 1:printf("本月1日是星期一");break;
case 2:printf("本月1日是星期二");break;
case 3:printf("本月1日是星期三");break;
case 4:printf("本月1日是星期四");break;
case 5:printf("本月1日是星期五");break;
cas