ZOJ 2104 ZOJ 1110

不清楚为什么我的编译器上strcpy_s()可以运行通过,到了ZOJ上就不行了   就会出现编译错误难过

//ZOJ    2104
#include<stdio.h>
#include<cstring>
#include<algorithm>
#include<fstream>
#include<iostream>
using namespace std;
struct str
{
	//该结构体中的两个变量分别记录:字符变量(在输入系统中出现的),每个字符出现的次数
	char s[100];
	int num;
};
str a[100];
void Init(int n)
{
	//将每个字符出现的次数都初始化为零
	for (int i = 0; i < n; i++)
	{
		a[i].num = 0;
	}
}
bool cmp(str a, str b)
{
	//重写比较函数(按照从大到小的顺序排列)
	return a.num>b.num;
}
int main()
{
	ifstream cin("F://ac.txt");
	int j, n;
	char b[100];
	while (true)
	{
		cin >> n;
		if (n == 0)
		{
			break;
		}
		Init(n);
		//读入第一个字符
		cin >> a[0].s;
		//记录当前出现了多少个不同的字符
		int count = 0;
		for (int i = 1; i < n; i++)
		{
		    //开始读入后面的字符
			cin >> b;
			for (j = 0; j <= count; j++)
			{
				//在已存在的字符中查找是否有和新读入的字符相同的字符,如果存在则将
				//该字符的num++
				if (strcmp(b, a[j].s) == 0)
				{
					a[j].num++;
					break;
				}
			}
			if (j - 1 == count)
			{
				//该条件的意义是如果在已存在的字符中没有找到符合条件的字符
				//则将该字符插入到一个新的位置上去
				strcpy_s(a[++count].s, b);
			}
		}
		//对数组进行排列,并输出出现频率最高的
		sort(a, a + count + 1, cmp);
		cout << a[0].s << endl;
	}
	return 0;
}
//ZOJ 1110
#include <stdio.h>
int main(void)
{
	int j, a, b, c, s, p, y;
	while (scanf("%d%d%d%d", &s, &p, &y, &j) != EOF)
	{
		for (a = 12 + j - 1; a >= s + p; a--)
		for (b = p; b <= 12 + j - a; b++)
		{
			c = 12 + j - b - a;
			if (
				(a == b + s || a == b + s + 1) &&
				(b == c + p || b == c + p + 1) && 
				(a == y + c || a == y + c + 1)
				)
				goto X;
		}
	X:
		printf("%d %d %d\n", a, b, c);
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值