用织梦网站后台发布文章为什么还需要审核河南开封网站建设
web/
2025/9/30 9:28:50/
文章来源:
用织梦网站后台发布文章为什么还需要审核,河南开封网站建设,珠海网站建设哪家权威,网站建设公司信科网络id:19 A.三数论大小#xff08;引用#xff09;
题目描述
输入三个整数#xff0c;然后按照从大到小的顺序输出数值。
要求#xff1a;定义一个函数#xff0c;无返回值#xff0c;函数参数是三个整数参数的引用#xff0c;例如int a, int b, int c。…id:19 A.三数论大小引用
题目描述
输入三个整数然后按照从大到小的顺序输出数值。
要求定义一个函数无返回值函数参数是三个整数参数的引用例如int a, int b, int c。在函数内对三个参数进行排序。主函数调用这个函数进行排序。
要求不能直接对三个整数进行排序必须通过函数而且是引用的方法。
要求输出必须在主函数进行。
输入
第一行输入t表示有t个测试实例
第二行起每行输入三个整数
输入t行
输出
每行按照从大到小的顺序输出每个实例三个整数之间用单个空格隔开
输入样例
3 2 4 6 88 99 77 111 333 222
输出样例
6 4 2 99 88 77 333 222 111
题解
先是定义一个函数swap函数通过引用传递参数在函数内部对参数的修改会影响到函数外部的值目的是使得a是最大的c是最小的在main函数中进行简单的数据输入和输出
反思
在swap函数中代码过于冗杂可修改为
先添加头文件# include algorithm这样就可以使用标准库中的std::sort函数来替代这个自定义的swap函数从而简化代码
void swap(int a, int b, int c)
{int arr[] {a, b, c};std::sort(arr, arr 3); // 使用std::sort函数进行排序a arr[2]; // a最大b arr[1]; // b中等c arr[0]; // c最小
}代码实现
#include iostream
using namespace std;
void swap(int a, int b, int c);int main()
{int t, a, b, c, i;cin t;for (i 0; i t; i){cin a b c;swap(a, b, c);cout a b c endl; // a最大c最小}return 0;
}void swap(int a, int b, int c)
{int temp;if (a b){temp a;a b;b temp;if (a c){temp a;a c;c temp;}if (b c){temp b;b c;c temp;}}else if (a b){if (a c){temp a;a c;c temp;}if (b c){temp b;b c;c temp;}}
}id:134 B.求最大值最小值引用
题目描述
编写函数void find(int *num,int n,int minIndex,int maxIndex)求数组num(元素为num[0]num[1]…num[n-1]中取最小值、最大值的元素下标minIndex,maxIndex若有相同最值取第一个出现的下标。
输入n动态分配n个整数空间输入n个整数调用该函数求数组的最小值、最大值下标。
改变函数find功能不计分。
要求在main函数中按样例格式输出结果不能直接在find函数中输出。
输入
测试次数
每组测试数据一行数据个数n后跟n个整数
输出
每组测试数据输出两行分别是最小值、最大值及其下标。具体格式见样例。多组测试数据之间以空行分隔。
输入样例
2 5 10 20 40 -100 40 10 23 12 -32 4 6 230 100 90 -120 15
输出样例
min-100 minindex3 max40 maxindex2
min-120 minindex8 max230 maxindex5
题解
首先声明一个函数void find(int *num,int n,int minIndex,int maxIndex)用于找到题目所要求的值因为参数是引用所以改变的值可以传出到主函数然后定义一个指向整数的指针numnew是C的一个运算符用于动态分配内存new int[n]会在堆上创建一个有n个整数的数组并返回这个数组的首地址int *num new int[n]; 这行代码的作用是创建一个大小为n的整数数组并将数组的首地址赋值给指针num。这样num就可以用来访问和操作这个数组了然后进行数据的输入并存储在num数组中虽然num是一个指针但在C中数组名实际上就是一个指向数组第一个元素的指针。因此我们可以使用指针来访问和操作数组。num[j]是一种数组索引法它等价于 *(num j)。这里num j是一个指针运算他计算出数组中第j个元素的地址然后*运算符对该地址进行解引用得到改地址处的值然后进行变量的初始化在主函数中找出最大最小值接着通过find函数找到对应下标最后输出
代码
#include iostream
using namespace std;void find(int* num, int n, int minIndex, int maxIndex);int main()
{int t, n, i, *num, j, min, max, minindex, maxindex;cin t;for (i 0; i t; i){cin n;int* num new int[n]; // 动态创建for (j 0; j n; j){cin num[j];}min num[0]; // 初始化max num[0];minindex 0;maxindex 0;for (j 0; j n; j){if (max num[j]){max num[j];}if (min num[j]){min num[j];}}find(num, n, minindex, maxindex);cout min min minindex minindex endl;cout max max maxindex maxindex endl endl;}return 0;
}void find(int* num, int n, int minIndex, int maxIndex)
{int i, max, min;max num[0];min num[0];for (i 0; i n; i){if (max num[i]){max num[i];maxIndex i;}if (min num[i]){min num[i];minIndex i;}}
}id:133 C.小票的输入输出结构体
题目描述
现在人的消费习惯大多是刷卡消费商家会通过POS机回执一个小票包含商家名称、终端号、操作员、发卡方、有效期、卡号、交易时间、消费金额等信息把商家信息定义为一个Struct结构按照要求输出相应的格式小票。
输入
第一行输入消费次数刷卡次数
第二行依次输入小票包含的各种属性最大长度不超过30.
第三行与第二行类似以此类推。。。
输出
根据输入信息依次输出各次刷卡信息$
输入样例
2 TianHong 00001 01 CCB 21/06 6029071012345678 2016/3/13 1000.00 Cindy 00002 02 CCB 21/07 6029071055558888 2015/3/13 50.00
输出样例
Name: TianHong Terminal: 00001 operator: 01 Card Issuers: CCB Validity: 21/06 CardNumber: 6029********5678 Traded: 2016/3/13 Costs: $1000.00
Name: Cindy Terminal: 00002 operator: 02 Card Issuers: CCB Validity: 21/07 CardNumber: 6029********8888 Traded: 2015/3/13 Costs: $50.00
题解
定义一个结构体Struct然后按照输出的数据类型用该数据类型定义变量和数组最后就是简单的输入输出
代码实现
#include iostream
using namespace std;struct Struct
{char name[50];char ter[50];char ope[50];char iss[50];char val[50];char num[50];char tra[50];double costs;
};int main()
{int t, i;Struct cust;cin t;for (i 0; i t; i){cin cust.name cust.ter cust.ope cust.iss;cin cust.val cust.num cust.tra cust.costs;cout Name: cust.name endl;cout Terminal: cust.ter operator: cust.ope endl;cout Card Issuers: cust.iss Validity: cust.val endl;cout CardNumber: cust.num[0] cust.num[1] cust.num[2] cust.num[3] ******** cust.num[12] cust.num[13] cust.num[14] cust.num[15] endl;cout Traded: cust.tra endl;cout Costs: $ cust.costs .00 endl endl;}return 0;
}id:20 D.谁是老二结构体
题目描述
定义一个结构体包含年月日表示一个学生的出生日期。然后在一群学生的出生日期中找出谁的出生日期排行第二
要求出生日期的存储必须使用结构体不能使用其他类型的数据结构。
要求程序全过程对出生日期的输入、访问、输出都必须使用结构。
输入
第一行输入t表示有t个出生日期
每行输入三个整数分别表示年、月、日
依次输入t个实例
输出
输出排行第二老的出生日期按照年-月-日的格式输出
输入样例1
6 1980 5 6 1981 8 3 1980 3 19 1980 5 3 1983 9 12 1981 11 23
输出样例1
1980-5-3
输入样例2
5 1980 4 1 1981 8 3 1980 3 31 1983 9 12 1981 11 23
输出样例2
1980-4-1
题解
首先要定义一个结构体date然后结构体里面定义三个int型变量然后就是进行数据的输入因为题目要找第二大的所以是要找到年份月份和日期都第二小的所以我们将年份乘以10000月份乘以100天数乘以1存储到一个数组中在这个数组中找到第最小的然后还要再遍历一次整个数组找到这个最小值的数组元素将其赋值为最大值然后第二小的值就变成最小的了这样就找到了第二小的找到后将其的下标记录然后就可以输出了
id:21 E.抄袭查找结构体 指针 函数
题目描述
已知一群学生的考试试卷要求对试卷内容进行对比查找是否有抄袭。
每张试卷包含学号整数类型、题目1答案字符串类型、题目2答案字符串类型、题目3答案字符串类型
要求使用结构体来存储试卷的信息。定义一个函数返回值为一个整数参数是两个结构体指针函数操作是比较两张试卷的每道题目的答案如果相同题号的答案相似度超过90%那么就认为有抄袭函数返回抄袭题号否则返回0。相似度是指在同一题目中两个答案的逐个位置上的字符两两比较相同的数量大于等于任一个答案的长度的90%就认为抄袭。
输入
第一行输入t表示有t张试卷
第二行输入第1张试卷的学生学号
第三行输入第1张试卷的题目1答案最大长度不超过100
第四行输入第1张试卷的题目2答案最大长度不超过100
第五行输入第1张试卷的题目3答案最大长度不超过100
每张试卷对应4行输入
依次输入t张试卷的数据
输出
在一行中把发现抄袭的两个学号和题目号输出只输出第一次发现抄袭的题号数据之间用单个空格隔开
如果发现是题目1抄袭题目号为1以此类推
输出顺序按照输入的学号顺序进行输出
输入样例
5 2088150555 aabcdef11 ZZ887766dd cc33447799ZZ 2088150333 abcdef00 AABBCCDDEE ZZ668899cc 2088150111 AABBCCDDEE ZZ668899cc abcdef00 2088150222 AABBCFDDeE ZZ889966dd abcdef000 2088150444 aabcdef00 AABBCDDDEE cc668899ZZ
输出样例
2088150333 2088150444 2 2088150111 2088150222 3
题解
首先定义一个结构体用于存储输入的信息然后定义一个函数传入的参数是两个指针在主函数中进行数据的输入和输出因为find函数传入的是两个指针所以在主函数中要嵌套两个for循环来控制传入的指针每一个人都要和其他的人对比一遍如果返回的值不为零则输出这两个人的学号和这道题的题号。注意因为只要找到第一个抄袭的题故找到后直接break跳出内层循环进行下一个人的对比在find函数中创建两个指针数组分别指向stu结构体中的ans字符串。还要定义一个变量用于记数两个对比的字符串中有多少个字符相等然后用这个变量判断这个变量的值是否大于等于某个字符串长度的百分之九十如果是则返回一个对应的值那怎么计算字符串的长度呢在C中添加这个头文件#include 就可以使用strlen函数获取字符串的长度注意在find函数中需要两个for循环进行嵌套来实现对每个字符是否相等的比较第一个for循环用来获取数组中的第i个元素因为每个人有三个答案然后第二个for循环用来获取该字符串的第j个字节用ans1[i][j]来表示
反思
result find(stu[i], stu[j]);这行代码不能写成
result find(stu[i], stu[j]);因为
虽然stu是一个数组可以被当作一个指向第一个元素的指针但是stu[i]是stu数组的第i个元素它的类型是test并不是一个指针如果想获取一个指向stu[i]的指针就需要使用stu[i] ps每个i都是平行的没有关联
代码
#include iostream
#include cstring // 使用strlen函数获取字符串的长度
using namespace std;struct test
{int num;char ans1[110];char ans2[110];char ans3[110];
};int find(test* stu1, test* stu2);int main()
{int t, i, result, j;test stu[1000];cin t;for (i 0; i t; i){cin stu[i].num stu[i].ans1 stu[i].ans2 stu[i].ans3;}for (i 0; i t; i){for (j i 1; j t; j){result find(stu[i], stu[j]);if (result ! 0){cout stu[i].num stu[j].num result endl;break; // 如果发现抄袭进行下一组判断}}}return 0;
}int find(test* stu1, test* stu2)
{int i, j, cnt;char* ans1[3] { stu1-ans1, stu1-ans2, stu1-ans3 }; // 创建指针数组char* ans2[3] { stu2-ans1, stu2-ans2, stu2-ans3 };for (i 0; i 3; i) // 获取数组中的第i个元素{cnt 0;for (j 0; j strlen(ans1[i]); j) // 获取该字符串的第j个字节{if (ans1[i][j] ans2[i][j]){cnt;}}if (cnt 0.9 * strlen(ans1[i])){return i 1;}}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84381.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!