IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> C语言试题 -> 正文阅读

[游戏开发]C语言试题

目录

#数组试题

#指针试题


#数组试题

①统计单词的平均长度

输入:若干个单词,每个单词的前后都有若干个空格隔开

输出:单词的平均长度,保留到小数点后两位

解题思路如下:

第一步:解决空格+单词共同输入的问题;既然每个单词都可能前后有若干空格如何判断输入停止?

用gets()进行输入即可,gets()表示的是一行的输入,遇到回车就结束

第二步:解决计算单词个数问题;用多重判断条件就好了,前面是空格后面不是空格单词数+1

int main() {
	char arr[1000] = { 0 };
	int i = 0;
	gets(arr);
	int num = 0;
	float ret = 0.0;
	float c = 0.0;
	while (arr[i] != 0)
	{
		if (i != 0) 
		{
			if (arr[i] == ' '){}
			else if (arr[i] != ' ' && arr[i - 1] == ' ')
			{
				num++;
				c++;
			}
			else 
				c++;
		}
		else 
		{
			if (arr[i] == ' ') {}
			else 
			{
				c++;
				num++;
			}
		}
		i++;
	}
	ret = c / num;
	printf("%.2f", ret);
}

出现的问题:

Ⅰ:若gets()输入,因为把数组元素全部初始化为0了,是否就无法用arr[i] = '\0'来作为终止判断条件?

答:有可能,所以就直接arr[i] = 0作条件。

②绝对值排序

输入:若干个整数

输出:按照绝对值降序输出整数,每个整数输出后都换行

解题思路:

第一步:解决多个整数输入进数组的问题;在未知输入数字的个数条件下,如何实现想输入多少个数就多少个?

用EOF实现。

第二步:比较绝对值的大小

第三步:排序 -> 冒泡

第四步:按顺序打印

int fab(int n)
{
	int ret = 0;
	if (n < 0)
		return (0 - n);
	return n;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[1000] = { 0 };
	int i = 0;
	int j = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	int tmp = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n - 1 - i; j++)
		{
			if (fab(arr[j]) > fab(arr[j + 1]))
			{
				tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
	for (i = n - 1; i >= 0; i--)
	{
		printf("%d\n", arr[i]);
	}
	return 0;
}

出现的问题:

Ⅰ:math.h库函数无法使用

答:自己写一个绝对值函数就好

③13号星期几

1900年1月1日是星期一,判断n年后的每个月13号是周一到周日周日的次数都有多少

输入:整数n,表示经过了n年? // 如1?

输出:七个整数,表示是周一...周日的次数? //如1 3 1 2 2 2 4

解题思路:

第一步:判断是否是闰年 ,闰年二月多一天?//写一个闰年judge函数?

第二步:判断是哪个月? // 提前设定好每个月的天数

第三步:判断当月的13号是星期几? //当月天数==13时候,总天数%7看看是多少来判断星期几

int leapYear(int n)
{
	n += 1900;
	if (n % 400 == 0 ||( n % 4 == 0 && n % 100 != 0))
		return 1;
	return 0;
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	int cnt[7] = { 0 };
	int i = 0;
	int monthday = 0;
	int day = 6;
	int year = 0;

	if (n >= 1 && n <= 100)
	{
		for (year = 0; year < n; year++)
		{
			month[1] += leapYear(n);
			for (i = 0; i < 12; i++)
			{
				for (monthday = 0; monthday <= month[i]; monthday++)
				{
					monthday = 13;
					day += 13;
					cnt[day % 7]++;
					monthday += (month[i] - 13);
					day += (month[i] - 13);
				}
			}
			month[1] = 28;
		}
	}
	i = 0;
	for (i = 0; i < 7; i++)
	{
		if (i < 6)
			printf("%d ", cnt[i]);
		else
			printf("%d", cnt[i]);
	}
	return 0;
}

④字符串的最小周期

输入:一个字符串

输出:字符串的最小周期

解题步骤:

#指针试题

①在数组中插入数字,不改变排序顺序

输入:一串整型数字 / 要插入的数字

输出:插入数字后顺序排序的字符串

解题步骤:

第一步:对已有的数字进行排序? //冒泡

第二步:看看插入的数字可以拍到哪个指针位置

第三步:把位置交给插入的数字,其他数字按位后移

出现的问题:

Ⅰ:平时习惯了用tmp来进行数组的数据交换,后移的突然就不会了

答:倒序交换,从后往前,避免了中间值的产生

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 12:10:15  更:2022-04-28 12:12:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 1:12:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码