该关卡内容较为简单,不在做过多阐述,直接上代码,第三关关卡左边也有描述
第一关
//定义复数类型
typedef struct
{
//请输入你的代码,主要有可能不是整数哦
float i;
float j;
//代码结束
}Complex;
//创建复数
void Create (Complex &c,float x,float y)
{
//请输入你的代码
c.i = x;
c.j = y;
//代码结束
}
//实现复数c1和c2的相加
Complex Add(Complex c1,Complex c2)
{
//请输入你的代码
Complex res;
res.i = c1.i + c2.i;
res.j = c1.j + c2.j;
return res;
//代码结束
}
//实现复数c1和c2的相减
Complex Sub(Complex c1,Complex c2)
{
//请输入你的代码
Complex res;
res.i = c1.i - c2.i;
res.j = c1.j - c2.j;
return res;
//代码结束
}
第二关
比较嫌弃题目麻烦,直接做了点改动
#include <iostream>
#include <string>
#include <string.h>
#include <exception>
using namespace std;
#define MaxSize 1000
//定义学生数据类型,至少能存储学号,姓名,性别,籍贯和专业等信息,建议使用英文参数
typedef struct student {
//请输入你的代码
int id;
char Name[20];
char Sex[4];
char Home[20];
char Major[30];
//代码结束
} Student;
//定义学生列表数据类型,包含学生对象和学生数量
typedef struct StuList{
Student *item;
int length;
}StudentList;
int main()
{
StudentList myList;
//初始化myList列表
myList.item = new Student[MaxSize];
myList.length = 0;
try
{
// 连续插入三个学生的信息
//形如:20210001 李斯 男 安徽合肥 网络空间安全
int index=0;
for(int index=0;index<3;index++)
{
cin>>myList.item[index].id>>myList.item[index].Name>>myList.item[index].Sex;
cin>>myList.item[index].Home>>myList.item[index].Major;
//请输入你的代码
//将输入学员信息存储进myList
myList.length ++;
//代码结束
}
//打印学生列表信息
for(index=0;index<myList.length;index++)
{
//请输入你的代码
//打印学生列表,注意按照 姓名 性别 籍贯 专业 学号 的顺序
cout<<myList.item[index].Name<<' '<<myList.item[index].Sex<< ' ' <<myList.item[index].Home;
cout<< ' ' <<myList.item[index].Major<< ' ' <<myList.item[index].id << endl;
//代码结束
}
}
catch(exception e)
{
cout<<"出现异常输入"<<endl;
}
return 0;
}
第三关
埃拉托色尼筛方便应用求某范围的质数
#include <iostream>
using namespace std;
#define SIZE 10000
void sieve(int n){
//产生一个数组“0 0 2 3 4 5 ...”
int A[SIZE] = {0};
int i = 0;
int j = 0;
//初始化
A[0] = 0;
A[1] = 0;
for(i=2;i<=n;i++)
{
A[i] = i;
}
//从索引2开始,不断地将筛去不是质数的数
//
//请输入你的代码
for(int i = 2;i <= n ; i++)
if(A[i] != 0)
for(int j = i + i ;j <= n; j += i)
A[j] = 0;
//
//打印质数结果
for(i=2;i<=n;i++)
{
if(A[i]!=0)
{
cout<<A[i]<<" ";
}
}
cout<<endl;
return;
}
int main(){
int x = 0;
cin>>x;
sieve(x);
return 0;
}