C-fifth

C-fifth 20181026

怎么在一组数中选取相同元素次数超过一半的元素:
1.排序法:先对数组进行排序,中间的那个值一定是次数最多的元素。
2.火拼法:不同的元素count–;相同的元素count++;1对1,相同的加加,不同的全减。

int a[] = {1,2,5,4,3,5,5,5,3,5,6,5};
int count = 1;
int curr = a[0];
int n = sizeof(a) / sizeof(a[0]);
for(i = 1;i < n;i++)
{
	if(count == 0)
	{
	curr = a[i];
	count = 1;
	continue;
}
if(curr == a[i])
count++;
else
count--;
}
if(count != 0)
	printf("%d\n",curr);

日期问题:
从当前日期(20181026)到(20000101)共有多少天?
把年月日全分开计算:
还需写一个二维数组:一个闰年月份天数,非闰年月份天数,需要判断是否为闰年,加366和365,同时数组加哪一个,再加天数。

scanf,getchar,gets
void mystrcpy(char*,const char*)
char *strcpy(char*,const char*);--实现链式表达式

strcpy(a,b)把b字符放a上。其中包括(’\0’),相当于覆盖a字符
strncpy(a,b,2)把b的两个字符放a上。
strcmp(a,b)比较a和b的asc码,从第一位开始
strcat(a,b);把a和b衔接起来。

发布了39 篇原创文章 · 获赞 10 · 访问量 768

猜你喜欢

转载自blog.csdn.net/weixin_43393776/article/details/83514520
C