栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第一周总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一周总结

回顾这一周,除了周日有点开摆,总的来说还是挺充实的。这周刚开始的话,是在学习结构体和函数的用法,看了挺多教材和网课,学会了结构体按一定条件来排序。下面列举一个我强行把老师作业按结构体来做。

#include//刚刚学了一下结构体,想在这道题试一试,虽然可能比两个数组更麻烦; 
#include

//定义一个结构体 
struct node{
	char name[20];
	int num;
};

void fun1(struct node a[15])//输入十个名字加职工号 
{
	for(int i=0;i<10;i++)
	{
		scanf("%s%d",a[i].name ,&a[i].num);
		getchar(); 
	}
}
void fun2(struct node a[15])//将十个人按职工号大小排序,没有考虑号码相同时按名字大小排序 

{
	struct node b[15];
	for(int i=0;i<10;i++)
	{
		for(int j=0;j<9-i;j++)
		{
			if(a[j].num>a[j+1].num)//因为数据较少用了冒泡 
			{
				b[0]=a[j];

				a[j]=a[j+1];

				a[j+1]=b[0];
			}
		}
	}
}

void fun3(struct node a[15])//二分法找出符合的职工号,然后找出名字 
{
	int max=9,min=0;
	for(int i=0;i<4;i++)//十个数据最多用四次 
	{
		int mid=(max+min)/2;
		if(a[mid].num==a[10].num)
		{
	    	a[10]=a[mid];
			break;
		}
		else if(a[mid].num>a[10].num)
				max=mid-1;
		else 
			min=mid+1;
	}
}
int main()
{
	struct node a[15];
	fun1(a);
	fun2(a);
	scanf("%d",&a[10].num );//输入要寻找的职工号 
	fun3(a);
	printf("%s",a[10].name);//找出对应的名字 

}

然后就是这周的一些动态规划和贪心算法了,由于题组关了就不举例了;周六参加了新星杯,就因为一道题老是71%不然能达到理想目标的,但是比上次感觉还是有点进步的,下次继续加油!

这是我除了两道签到题写出来的唯一一道有一点点难度的题;

无聊的会长今天出去打狂犬疫苗,因为被来福咬了。路上会长路过了一个十字路口,在等红绿灯,发现时间居然是99秒,会长觉得这很不合理,于是想要自己设计一套红绿灯算法,但是由于会长刚刚被喵咬了还没打狂犬疫苗,出现了短暂的神志不清,就连基本的红绿灯合理性都判断不出来了,你能帮帮会长吗?

如图,一个十字路口(双向车道),有四个信号灯(图中用数字标示),有两种信号左转和直行(右转可以直接走),只考虑红灯(停止信号)和绿灯(放行信号),没有黄灯。用“R”代表红灯,用“G”代表绿灯,从一号信号灯开始依次给出四个信号灯的信号(对于每个信号灯先输出左转信号再输出直行信号),请告诉会长该情况下是否合理,合理指没有两辆或以上的车辆通过路口的行车轨迹会相交或重合。


 

格式 输入格式

一行八个字符代表四个信号灯的信号值

输出格式

如果合理,请输出"perfect",否则输出"terrible"(不带引号)。

样例 样例输入 
RGRRRGRR
样例输出 
perfect		

 代码答案(我自己的)

#include
int main()
{
	int cot=0;
	char a[10];
	gets(a);
	for(int i=0;i<8;i++)
	if(a[i]=='G')
	cot++;
	if(cot==2)
	{
  //两个车道面对面直行		if(a[0]=='G'&&a[1]=='G'||a[2]=='G'&&a[3]=='G'||a[4]=='G'&&a[5]=='G'||a[6]=='G'&&a[7]=='G')
		printf("perfect");
		else if(a[1]=='G'&&a[5]=='G'||a[3]=='G'&&a[7]=='G')
		printf("perfect");
		else if(a[0]=='G'&&a[4]=='G'||a[2]=='G'&&a[6]=='G')
		printf("perfect");
		else//一个直行对应一个左转 if(a[1]=='G'&&a[6]=='G'||a[3]=='G'&&a[0]=='G'||a[5]=='G'&&a[2]=='G'||a[7]=='G'&&a[4]=='G')
		printf("perfect");
		else
		printf("terrible");
	}
	else if(cot==1)   //一个绿灯直接通行
	printf("perfect");
	else if(cot==0)//没有绿灯直接perfect
	printf("perfect");
	else //多余两个就是terrible
	printf("terrible");
}

这周总的来说对自己的表现还是挺满意的,下周继续加油卷过pz!!!!!

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号