GDPU 3

2024-01-25 11:20
文章标签 gdpu

本文主要是介绍GDPU 3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验三:

目录

实验三:

1.分段函数

2.三角形的周长和面积

3.月份判断

4.能否整除

5.判断闰年

6.日期合法性

7.日期合法性

8.某年某月某日是当年的第几天

9.某年某月某日是当年的第几天

10.某年某月某日是当年的第几天

11.某年某月某日是当年的第几天(数组)

12.某年某月某日是当年的第几天


1.分段函数

#include<stdio.h>
int main()
{double x,y;scanf("%lf",&x);if(x<1)y=x;if(1<=x<10)y=x-1;if(x>=10)y=3*x-11;printf("y=%.2lf",y);return 0;
}

2.三角形的周长和面积

#include<stdio.h>
#include<math.h>
int main()
{double x1,x2,x3,y1,y2,y3;double a,b,c,s,L,S;scanf("%lf,%lf",&x1,&y1);scanf("%lf,%lf",&x2,&y2);scanf("%lf,%lf",&x3,&y3);a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));b=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));c=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));s=(a+b+c)/2;L=a+b+c;S=sqrt(s*(s-a)*(s-b)*(s-c));if(a+b>c && a+c>b && b+c>a)printf("primeter=%.2lf,area=%.2lf",L,S);elseprintf("Impossible");return 0;
}

也可放在if里面 

#include<stdio.h>
#include<math.h>
int main()
{double x1,x2,x3,y1,y2,y3,S,L;double a,b,c,s;scanf("%lf,%lf",&x1,&y1);scanf("%lf,%lf",&x2,&y2);scanf("%lf,%lf",&x3,&y3);a=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));b=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2));if(a+b>c && a+c>b && b+c>a && a>0 && b>0 && c>0){s=(a+b+c)/2; S=sqrt(s*(s-a)*(s-b)*(s-c));L=a+b+c;printf("primeter=%.2f,area=%.2f",L,S);}	elseprintf("Impossible");return 0;
}

3.月份判断

#include<stdio.h>
int main()
{int y;scanf("%d",&y);if(y>=2 && y<=4)printf("Spring");if(y>=5 && y<=7)printf("Summer");if(y>=8 && y<=10)printf("Autumn");if(y>=11 && y<=12 || y==1)printf("Winter");if(y>12 || y<1)printf("Error");return 0;
}

4.能否整除

#include<stdio.h>
int main()
{int x;scanf("%d",&x);if(x%5==0 && x%7==0)printf("A");else if(x%5==0)printf("B");else if(x%7==0)printf("C");else if(x%5!=0 && x%7!=0)printf("D");return 0;
}

5.判断闰年

#include<stdio.h>
int main()
{int year,leap;//leap为0,不是闰年;leap为1,是闰年scanf("%d",&year);if(year%4==0){/*能被4整除的情况*/if(year%100==0){if(year%400==0)leap=1;elseleap=0;}			}else leap=0;//不能被4整除,不是闰年 如:1973if(leap)printf("yes");elseprintf("no");return 0;
}

6.日期合法性

#include<stdio.h>
int judgeyear(int year)
{int flag=0;//平年返回0if ((year%4==0 && year%100 !=0) || year%400==0)flag=1;//闰年返回1return flag;
}int main()
{int year,month,day;int flag_1=0;scanf("%d%d%d",&year,&month,&day);//判断输入的合法性if(day>=1 && day<=31 && (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12))//大月的月份flag_1=1;else if(day>=1 && day<=30 &&(month==4||month==6||month==9||month==11))//小月的日的范围flag_1=1;else if(day>=1 && day<=28+judgeyear(year) && month==2)flag_1=1;if(flag_1)printf("yes");elseprintf("no");return 0;
}

7.日期合法性

(先假设平年,列出所有不合法情形,其余合法)

#include<stdio.h>int judgeyear(int year)
{/*此函数的功能为判断一个年份year(整数)是不是闰年,闰年返回1,否则返回0先假设所有的年份都是平年,然后判断是否满足闰年的条件,若满足,修改返回值*/int flag=0;//平年返回0if (year%400==0 || year%4==0 && year%100!=0)flag=1; return flag;
}
int main()
{int year,month,day;int flag_1=1; //1合法,2非法scanf("%d%d%d",&year,&month,&day);if(day>31 || day<1 || month>12 || month<0 || year<0)flag_1=0;else if(day==31 && (month==4 && month==6 && month==9 && month==11))flag_1=0;else if(day==30 && month==2)flag_1=0;else if(month==2){if(day>28+judgeyear(year))flag_1=0; 
//考虑2月的情况,平年超过28,闰年超过29,都是非法的}if(flag_1)printf("yes");elseprintf("no");return 0;
}

8.某年某月某日是当年的第几天

switch(表达式)

{

        case 1:

        case 2:

        case 3:

        case 4:

        case 5:

        case 6:

        ...... ......

        case n:

        default: ......break;

}

switch:(处理多分支选择)(break语句结束循环)

①每个语句都使用break(输入-->结束,一次)

②不使用break(不结束,执行完当前语句后执行下一个语句)

③某些语句使用break(某些语句执行完就结束)

#include<stdio.h>
int judgeyear(int year)
{int flag=0;//平年返回0if ((year%4==0 && year%100 !=0) || year%400==0)flag=1;//闰年返回1return flag;
}/*本题不考虑日期的合法性,输入的日期是合法的*/int main(){int year,month,day;int dayNumber=0;scanf("%d%d%d",&year,&month,&day);switch (month){case 12:dayNumber +=30;case 11:dayNumber +=31;case 10:dayNumber +=30;case 9 :dayNumber +=31;case 8 :dayNumber +=31;case 7 :dayNumber +=30;case 6 :dayNumber +=31;case 5 :dayNumber +=30;case 4 :dayNumber +=31;case 3 :dayNumber +=28+judgeyear(year);//3月的情况(三月天数+二月天数)case 2 :dayNumber +=31;//2月的情况case 1 :dayNumber +=day;break;//1月的情况default:printf("Input error!");}printf("%d",dayNumber);return 0;
}

9.某年某月某日是当年的第几天

本题指到某天后,用总天数(dayNumber)-后面的天数

!!!dayNumber-=30 <==> dayNumber=dayNunber-30

#include<stdio.h>
int judgeyear(year)
{int flag=0;//平年返回0if((year%4==0 && year%100!=0) || year%400==0)flag=1;//闰年返回1return flag; 
}int main()
{int year,month,day;int dayNumber=365;scanf("%d%d%d",&year,&month,&day);if (judgeyear(year))dayNumber=366;switch(month){//dayNumber-=30 == dayNumber=dayNumber-30case 1:dayNumber-=31;case 2:dayNumber-=28+judgeyear(year);case 3:dayNumber-=31;case 4:dayNumber-=30;case 5:dayNumber-=31;case 6:dayNumber-=30;case 7:dayNumber-=31;case 8:dayNumber-=31;case 9:dayNumber-=30;case 10:dayNumber-=31;case 11:dayNumber-=30;case 12:dayNumber-=31;break;dafault:printf("Input error!");}printf("%d",dayNumber+day);return 0;
}

10.某年某月某日是当年的第几天

#include<stdio.h>
int main()
{int year,month,day,Feb,sum;scanf("%d%d%d",&year,&month,&day);if((day>31) || (day<1)){printf("input error!");return 0;}if((year%4==0 && year%100!=0) || (year%400==0)) {Feb=29;}else{Feb=28;}switch(month){case 1:sum=day;break;case 2:if(day>Feb){printf("input error\n");return 0;} else{sum=31+day;break;}case 3:sum=31+Feb+day;break;case 4:sum=62+Feb+day;break;case 5:sum=92+Feb+day;break;case 6:sum=123+Feb+day;break;case 7:sum=153+Feb+day;break;case 8:sum=184+Feb+day;break;case 9:sum=215+Feb+day;break;case 10:sum=245+Feb+day;break;case 11:sum=276+Feb+day;break;case 12:sum=306+Feb+day;break;defult:printf("input error\n");}	printf("%d",sum);return 0;
}

11.某年某月某日是当年的第几天(数组)

#include<stdio.h>
int main(){int month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//第一个元素a0int year,month,day;int i;scanf("%d%d%d",&year,&month,&day);if(month<0||month>12)printf("date error");else{for(i=1;i<month;i++){day=day+month_day[i];if (i==2 && year%400==0 || (year%400==0 && year%100!=0))day++;}}printf("%d",day);return 0; 
}

12.某年某月某日是当年的第几天(循环)

#include<stdio.h>
int main(){int year,month,day,week;scanf("%d%d%d",&year,&month,&day);scanf("%d",&week);if(month<0 || month>12)printf("date error");else{int i;for(i=1;i<month;i++){int month_day=0;switch(month-1){case 12:month_day+=31;case 11:month_day+=30;case 10:month_day+=31;case 9:month_day+=30;case 8:month_day+=31;case 7:month_day+=31;case 6:month_day+=30;case 5:month_day+=31;case 4:month_day+=30;case 3:month_day+=31;case 2:if((year%4==0 && year%100!=0) || year%400==0)month_day+=29;elsemonth_day+=28;case 1:month_day+=31;break;defaut:printf("Input error!"); }	day=day+month_day;}}printf("%d",(day+week-1)%7);return 0; 
}

这篇关于GDPU 3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643104

相关文章

GDPU Java 天码行空15 数据库编程

一、实验目的 1、 了解数据库的基础知识。 2、 掌握MySQL的下载、安装与配置。 3、 掌握MySQL可视化工具的使用。 4、 了解SQL语言。 5、 掌握JDBC中的API,并能进行简单的数据库操作。 二、实验内容 1、 安装MySQL 👨‍🏫 视频教程 2、建表 + 写数据 建立数据库productDB,再建立product表,然后按照下表输入记录,可以使用SQL语句或可视

GDPU unity游戏开发 寻路与导航

学会寻路,出门在外,身份不是他给的,他做不了你一直的导航。 角色寻路 角色控制器替换为普通的角色控制器,给实验九的地形增加NavMesh Surface组件,然后给角色增加NavMesh Agent组件,并选择合适的参数。通过脚本来实现自动寻路。 结合实验十的动画角色,将角色控制器替换为动画角色,并通过脚步来实现自动寻路。采用寻路系统后,角色的移动是由寻路系统来完成的,也就是说寻路系统

GDPU unity游戏开发 动画状态机

每一个动画状态都演绎着你的奔赴。 动画混合 1)  前往 Mixamo选择适合的角色模型和idle/walking/backward动画并下载。确保下载时选择FBX for Unity格式。 2)  新建Unity项目,导入下载的模型。 3)  在导入模型的Inspector窗口中,选择Materials选项卡,解压纹理和材质。 4)  在带有模型的动画中,设置Rig为Humano

GDPU JavaWeb mvc模式

搭建一个mvc框架的小实例。 简易计算器 有一个名为inputNumber.jsp的页面提供一个表单,用户可以通过表单输入两个数和运算符号提交给Servlet控制器;由名为ComputerBean.java生成的JavaBean负责存储运算数、运算符号和运算结果,由名为handleComputer的servlet控制器负责运算,将结果存储到JavaBean中,并负责请求JSP页面look

GDPU 竞赛技能实践 天码行空 期末小测

1. 除法(原题) 👨‍🏫 实验二:1.简单枚举 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij= n的表达式,其中a~j恰好为数字0~9的一个排列(可以有前导0),2≤n≤79。 样例输入: 62 样例输出: 79546 / 01283 = 62 💖 Main1.java import java.util.HashSet;import java.uti

GDPU unity游戏开发 角色控制器与射线检测

在你的生活中,你一直扮演着你的角色,别被谁控制了。 小试 1. 创建一个角色控制器,通过键盘控制角色控制器的移动,角色控制器与家具发生碰撞后,通过Debug语句打印出被碰撞物体的信息(搜索OnControllerColliderHit的使用方法)。 2. 通过屏幕射线进行碰撞检测,使得鼠标点击某个家具后,通过Debug语句打印该物体的信息。 先搭建好场景   然后以玩具小车做

GDPU 算法分析与设计 天码行空6

一、【实验目的】 (1)熟悉贪心法的设计思想 (2)理解贪心法的最优解与正确性证明之间的关系 (3)比较活动选择的各种“贪心”策略,探讨最优算法。 二、【实验内容】 有n项活动申请使用同一场所,每项活动有一个开始和结束时间,如果任何两个活动不能重叠,问如何选择这些活动,使得被安排活动数量达到最多。 要求至少选择两项“贪心”策略进行比较,其中一个是最优的。建议最优算法参考教材P88的算法4.1

【GDPU】数据结构实验十 哈夫曼编码

【实验内容】 1、假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成,它们在电文中出现的概率分别为{ 0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10 },试为这8个字母设计哈夫曼编码。 提示:包含两个过程:(1)构建哈夫曼树,(2)输出编码。 我的思路: (1)建造哈夫曼树的过程直接按照哈夫曼

GDPU JavaWeb 猜字母游戏

他在对你重定向打卡的大饼与立即跳转到你面前的谎言之间反复横跳。 sendRedirect与forward   sendRedirect与forward区别 sendRedirect用于将请求重定向到另一个资源,可以是同一个应用程序内的其他 Servlet,也可以是其他 Web 应用程序的资源,告诉浏览器发起一个新的请求,并在响应中返回一个新的 URL 地址。会产生两次请求,一次是原始

GDPU unity游戏开发 碰撞器与触发器

砰砰叫,谁动了她的奶酪让你的小鹿乱撞了。基于此,亦即碰撞与触发的过程。 碰撞器与触发器的区别 通俗点讲,碰撞器检测碰撞,触发器检测触发,讲了跟没讲似的。碰撞器是用来检测碰撞事件的,在unity中,两个物体能检测到碰撞的前提是两个物体都有碰撞器,且至少有一个是刚体,在引擎中,很多时候都用到了碰撞与交互。 而触发器是碰撞器的一种,一旦勾选了触发器就检测不到碰撞了,这就是碰撞器与触发器的主要区