C++ 数组 结构编程题

一 求100以内的所有素数

/*
* 需要标记2~100 之间的数是否处理
* 用数组,初始为0 表示都是素数,如果
判断为合数则置为1过用
*/
#include<stdio.h>
#include<math.h>
int main()
{
	const int n = 100;
	int isPrim[n + 1] = { 0 };
	int i, j;
	for (i = 2; i <= sqrt(float(n)); i++)
	{
		if (isPrim[i] == 0)
		{
			for (j = 2 * i; j <= n; j += i)
			{
				isPrim[j] = 1;
			}
		}
	}

	//输出
	for (i = 2; i <= n; i++)
	{
		if (isPrim[i] == 0)
		{
			printf("%5d", i);
		}
	}

	return 0;
}

二冒泡排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
冒泡排序算法的流程图
在这里插入图片描述
在这里插入图片描述

三 折半查找

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四 求Fibonacci数

有一对兔子,从出生后第
3 个月起每个月都
生一对兔子。小兔子长到第三个月后每个月
又生一对兔子。
假设所有的兔子都不死,问第 n 个月时有几
对兔子 n <= 15 。即求第 nFibonacci 数。
在这里插入图片描述
规律:第一个数和第二个数分别是1和1,从第三个数开始每个数是它前面两个数之和。

/*
* 有一对兔子,从出生后第
3 个月起每个月都
生一对兔子。小兔子长到第三个月后每个月
又生一对兔子。
假设所有的兔子都不死,问第 n 个月时有几
对兔子 n <= 15 。即求第 nFibonacci 数。
*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
	const int n = 10;
	int f[n], i;
	f[1] = 1, f[2] = 1;
	printf("%4d%4d", f[1], f[2]);
	for (int i = 3; i < n; i++)
	{
		f[i] = (f[i - 1]) + f[i - 2];
		printf(" %4d", f[i]);
	}
	system("pause");
	return 0;
}

五 在屏幕上模拟显示一个数字式时钟

定义一个时钟结构体类型:

struct clock
{
    int hour;
    int minute;
    int second;
};

trypedef struct clock CLOCK;

然后,编程事项将时钟模拟显示屏幕上。

#include<stdio.h>
#include<Windows.h>
struct clock
{
	int hour;
	int minute;
	int second;
};

typedef struct clock CLOCK;

int main()
{
	CLOCK t = { 0,0,0 };
	int n = 100,i = 0;
	char c;
	while (++i < n)
	{
		t.second++;
		if (t.second >= 60)
		{
			t.second = 0;
			t.minute++;
		}

		if (t.minute >= 60)
		{
			t.minute = 0;
			t.hour++;
		}
		if (t.hour >= 24)
			t.hour = 0;
		printf("%2d:%2d:%2d\r", t.hour, t.minute, t.second);
		Sleep(1000);
	}
}

读取本机时间

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
int main()
{
	time_t now;
	struct tm local;
	while (1)
	{
		time(&now);
		localtime_s(&local,&now);
		printf("%2d:%2d:%2d\r", local.tm_hour, local.tm_min, local.tm_sec);
		Sleep(1000);
	}
	system("pause");
	return 0;
}

六 数据分析

从键盘输入学生的学号,分析其年级、学院、专业、班级、编号。
学号格式如下:
在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>

typedef struct student
{
	char grade[5];
	char department[3];
	char major[3];
	char cclass[3];
	char number[4];
}student;

int main()
{
	char number[4];
	student s;
	int i;
	scanf_s("%s", number, 14);
	for (i = 0; i < 4; ++i)
		s.grade[i] = number[i];
	s.grade[i] = '\0';
	s.department[0] = number[i++];
	s.department[1] = number[i + 1];
	s.department[2] = '\0';
	s.major[0] = number[i++];
	s.major[1] = number[i++];
	s.major[2] = '\0';
	s.cclass[0] = number[i++];
	s.cclass[1] = number[i++];
	s.cclass[2] = '\0';
	s.number[0] = number[i++];
	s.number[1] = number[i++];
	s.number[2] = number[i++];
	s.number[3] = '\0';

	printf("学院:%s;专业:%s;年级:%s;班:%s;学号:%s\n", s.department,
		s.major, s.grade, s.cclass, s.number);
}
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值