XJTU第十四周大计基编程作业
1.
自定义排序
________________________________________
有一个包含奇数个项的整数序列,请编程按照以下规则排序:最大值排在中间,最小值排在最左,中值排在最右,其它值清为0。输入2行,第一行n表示要输入的数的个数,n是奇数。第二行输入的n个数。输出,排序后的数组,数据空格分隔,最后一个数据后面没有空格。
输入样例:
5
12 20 9 88 32
输出样例:
9 0 88 0 20
________________________________________
样例输入:
7
23 44 10 9 22 13 34
样例输出:
9 0 0 44 0 0 22
#include<stdio.h>
void mysort(int* a, int n)//采用冒泡排序,最小的在前;
{for (int i = 0; i < n; i++){for (int j = 0; j < n - 1; j++){if (a[j + 1] < a[j]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}
int main()
{int a[100], n;scanf_s("%d", &n);//输入的n必须为大于三的奇数;for (int i = 0; i < n; i++)scanf_s("%d", &a[i]);mysort(a, n);printf("%d ", a[0]);//输出顺序为:最小值,0,最大值,0最小值;for (int i = 0; i < (n - 3) / 2 ; i++)//输出0的个数为(n - 3) / 2, n必须为大于三的奇数;printf("0 ");printf("%d ", a[n - 1]);for (int i = 0; i < (n - 3) / 2 ; i++)printf("0 ");printf("%d", a[(n - 1) / 2]);return 0;
}
2.
取石子【选做】
________________________________________
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
输入格式: 输入表示若干种石子的初始情况,包含两个非负整数 a 和 b ,表示两堆石子的数目, a 和 b 都不大于1,000,000,000 。
输出格式: 包含一个数字 1 或 0 ,如果最后你是胜者,则为 1 ,反之,则为 0 。
输入样例:
2 1
输出样例:
0
________________________________________
样例输入:
2 1
样例输出:
0
/*算法分析:
来自百度知道:
如果两人都采取正确的操作,那么对于非奇异局势,先拿者必胜,对于奇异局势,先拿者必败。
对于奇异局势,有如下公式:
a[k]=[k*(1+√5)/2],b[k]=a[k]+k。(k=0,1,2......,[]表示取整)
那么通过b、a求出的a[k]如果与a相等,则说明满足奇异局势,先拿者必败,输出0
*/
#include<stdio.h>
#include<math.h>//需要用到sqrt以及floor;
int main()
{int a, b, m,n;scanf("%d%d", &a, &b);if (a > b) //在我们的公式中需要保证a比b小;{ int temp = a;a = b;b = temp; }m= b - a;n= (int)floor(m * ((sqrt(5) + 1) / 2));//int为数据类型强制转换;printf("%d", n == a ? 0 : 1);//表示如果n等于a,输出前者,否则输出后者;return 0;
}
3.
日期问题
________________________________________
题目描述:
输入公元年份和月份,输出该月份的天数。
输入输出格式:
输入:年,月(逗号分隔)
输出:天数
________________________________________
样例输入:
2018,8
样例输出:
31
#include<stdio.h>
int main()
{int year, month;scanf_s("%d,%d", &year, &month);int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};if (month == 2){if (year % 4 == 0 && year % 100 != 0){printf("29");}else printf("%d", days[2]);}else printf("%d", days[month]);return 0;
}
4.
求最大公约数和最小公倍数
________________________________________
题目描述:
输入两个正整数,输出其中最大公约数和最小公倍数。
输入输出格式:
输入:从键盘输入两个正整数
输出:最大公约数和最小公倍数。
样例:
输入:
15,25
输出:
最大公约数是5
最小公倍数是75
#include<stdio.h>
int gengxiangjiansun(int a, int b)
{while(a % 2 == 0 && b / 2 == 0)//更相减损法的前提:两个数不同时是偶数;并且题目给了条件:两者都是正数;{a = a / 2;b = b / 2;}while (1){if (a == b)//循环的结果是a和b相等;break;else if (a > b)a = a - b;else b = b - a;}return a;
}
int gongbeishu(int a, int b,int ys)//两个数的乘积等于这两个数的最大公约数与最小公倍数的积
{int bs = (a * b) / ys;return bs;
}
int main()
{int ys, bs;int a, b;scanf_s("%d,%d", &a, &b);ys = gengxiangjiansun(a, b);bs = gongbeishu(a, b, ys);printf("最大公约数是%d\n", ys);printf("最小公倍数是%d", bs);return 0;
}
5.
字符串中查找字符位置
________________________________________
题目描述:
查找一个字符在字符串中的第一个位置并输出这个位置。
输入输出格式:
输入:待查找的字符串和需要查找的字符。(输入时,待查找的字符串与所需查找的字符用*号隔开)
输出:字符的位置(如有多个相同的字符,只查找第一个。)
样例:
输入:
I am a studentm
输出:
4
________________________________________
样例输入:
fbhby WmlW
样例输出:
7
#include<stdio.h>
#include<string.h>
int main()
{char a[100]="";gets(a);int len = strlen(a);int n,flag=0;for (int i = 0; i < len-2; i++)if (a[i] == a[len - 1]){printf("%d", i+1);flag = 1;break;}if (flag == 0)printf("no finding");return 0;
}
6.
非公共有元素
________________________________________
题目描述:
输入两个整型数组(假设数组的大小为不超过10)的各个元素,输出不是两个数组共有的元素,并从小到大排序输出。
输入输出格式:
输入:两个数组的元素(小于10个),数组中第一个数据指示元素的个数
输出:两个数组的元素中非共有的元素,并且从小到大进行排序
样例:
输入:
7 1 2 3 4 5 6 7
6 5 6 7 8 9 0
输出:
0 1 2 3 4 8 9
样例输入:
7 1 2 3 4 5 6 7
6 5 6 7 8 9 0
样例输出:
0 1 2 3 4 8 9
#include<stdio.h>
void bubble(int a[], int n)
{for(int i = 0; i < n; i++){for (int j = 0; j < n - 1; j++){if (a[j] > a[j + 1]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}
int main()
{int a[10]; int b[10]; int c[20], d[20];
int n, k = 0, i, j;
scanf_s("%d", &a[0]);
for (i = 1; i <= a[0]; i++)
scanf_s(" %d", &a[i]);
scanf_s("%d", &b[0]);
for (i = 1; i <= b[0]; i++)
scanf_s(" %d", &b[i]);//数组的输入
for (i = 1; i <= a[0]; i++)
c[i - 1] = a[i];
for (i = 1; i <= b[0]; i++)
c[i + a[0] - 1] = b[i];//a、b两个数组合为一个数组c
for (i = 0; i < a[0] + b[0]; i++)
{int flag= 0;for (j = 0; j < a[0] + b[0]; j++){if (c[i] == c[j])flag++;}if (flag == 1){d[k] = c[i]; k++;}
}
bubble(d, k);//函数引用
printf("%d", d[0]);
for (i = 1; i < k; i++)printf(" %d", d[i]);
return 0;
}
7.
插入数组
________________________________________
题目描述:
定义一个含20个元素的整型数组并初始化为a[20]={1,2,3,4,5,6,7,8,9,10}。另外定义一个大小为10的整型数组b。
要求:输入整数n(1<=n<=10),然后输入n个整数存入b中,再输入一个整数k(1<= k <=10),
将数组b中的n个元素依次插入到数组a中从第k位开始的地方,插入完成后,输出数组a(元素间用空格隔开)。
输入输出格式:
输入:整数n,n个整数,整数k
输出:数组a
样例:
2
11 22
1 2 11 22 3 4 5 6 7 8 9 10
________________________________________
样例输入:
3
13 14 15
4
样例输出:
1 2 3 4 13 14 15 5 6 7 8 9 10
#include<stdio.h>
int main()
{int a[20] = { 1,2,3,4,5,6,7,8,9,10 };int b[10],n,k;scanf_s("%d", &n);for (int i = 0; i < n; i++)scanf_s("%d", &b[i]);scanf_s("%d", &k);for (int i=9; i >k-1; i--){a[i+n]=a[i];}for (int i = k; i < k + n; i++)a[i] = b[i - k];for (int i = 0; i < 10 + k-2; i++)printf("%d ", a[i]);printf("%d", a[10 + k - 2]);return 0;
}
8.
reversible prime 【选做】
________________________________________
A reversible prime in any number system is a prime whose “reverse” in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.
Now given any two positive integers N (< 105) and D (1 < D <= 10), you are supposed to tell if N is a reversible prime with radix D.
Input Specification:
The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.
Output Specification:
For each test case, print in one line “Yes” if N is a reversible prime with radix D, or “No” if not.
________________________________________
样例输入:
73 10
23 2
23 10
-2
样例输出:
Yes
Yes
No
关于是否是素数,之前的作业中写过:
int n,j;int k = 0;scanf_s("%d", &n);for (j = 1; j < n; j++){if (n % j == 0)k++;}if (k == 1)//只有1是满足条件的,则判定为素数;printf("YES");elseprintf("NO");
#include<stdio.h>
int tentok(int a, int k)
{int b[20] = {0};static int i = 0;while (1){b[i] = a%k;a = a / k;i++;if (a == 0)break;}int c = 0, j = 0;while (1){c = c * k + b[j];if(j==i-1)break;j++;}return c;
}
int shisushuma(int c)
{int j;int k = 0;for (j = 1; j < c; j++){if (c % j == 0)k++;}if (k == 1)return 1;elsereturn 0;
}
int main()
{int result[10];int a, k, c;static int num = 0;while(1){scanf_s("%d", &a);if (a < 0)break;else{scanf_s("%d", &k);c = tentok(a, k);result[num]=shisushuma(c);num++;}}for (int j = 0; j < num - 1; j++){if (result[j] == 1)printf("Yes\n");else printf("No\n");}if (result[num - 1] ==1)printf("Yes");else printf("No");
}
。。。。。。
临近期末,几乎都是复习题,比较轻松。
。。。。。。
XJTU第十四周大计基编程作业相关推荐
- XJTU第十三周大计基编程作业
1. 字符线性表 ________________________________________ 创建一个字符线性表(顺序表),并实现其基本操作(如插入,查找,删除,输出等).应用该线性表,将键盘输 ...
- XJTU第八周大计基编程作业
1. 题目描述: 输入总秒数,转换为相应的时.分.秒.提示:在输出时,请使用下面的格式(变量名不要求一样): printf("%d:%02d:%02d\n", h, m, s); ...
- 大数据导论第十三周、十四周课件以及课后作业
各位同学好-- 1.课件下载:十三周课件--大数据时代的思维变革,点此下载 十四周课件--大数据促进医疗健康,激发创造力,点此下载
- 吴恩达机器学习第四周测验及编程作业
代码:https://github.com/LiuZhe6/AndrewNGMachineLearning 文章目录 测验:Neural Networks: Representation 第一题 第二 ...
- 大计基编程(第十四周)
排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...
- 大计基编程题(第十周)
第一题 叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如: 小明会把1234它看成4321:把-1234看成-4321:把230看成032 (032=32):把-230看成-032(- ...
- 大计基编程题(第十二周)
排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...
- 第十四周练兵区——编程题——不计入总分
1学生成绩管理系统V5.0(4分) 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).参考学生成绩管理系统V4.0,定义结构体类型,用结构体数组作函数参数 ...
- 大计基编程题(第十一周)
题目 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 题目五 题目描述 题解 题目六 题目描述 题解 题目七 题目描述 题解 题目一 题目描述 编写函数 ...
最新文章
- 3Blue1Brown:“线性代数的本质”完整笔记
- D3.js可视化库入门视频教程
- 露雨资源库(第一个.net2.0软件)二
- c++语言表白超炫图形_青少年编程学习之C语言怎么学?现在知道,将来不亏!...
- AtCoder AGC024F Simple Subsequence Problem (字符串、DP)
- 内核并发控制---中断屏蔽 (来自网易)
- dump分析工具_阿里P8教你如何使用Jprofile解析dump文件
- vscode与git分支_Visual Studio Code 使用Git进行版本控制
- 安卓版teamview15.5.3
- 【JAVA】数据结构——堆的排序及相关面试题
- 2022保密教育线上培训考试参考答案 05
- 考研日语线上笔记(六):完型专项篇
- 计算机c盘如何扩容,C盘空间不足怎么办?4种方法获得更多空间!
- WebView启动支付宝客户端支付失败的解决办法
- 联想T430i笔记本电脑无声音
- S32K144之SDK版:CAN模块应用
- WPF快速入门2—布局WrapPanel,DockPanel,StackPanel,Canvas
- web端动效 lottie-web 使用
- 食品赛道崛起,舌尖美食走俏礼品市场
- 【求职】瓜子二手车 Java 方向面经
热门文章
- Superset 修改logo
- ABAP_ALV_Function方式与OO方式(较为简单、普通的ALV)
- 机器学习笔记(1)——线性回归
- 2013返利网评测报告 -来自爱爱网
- ShaderJoy —— ❤の霓虹【GLSL】
- NSM.so编译成功
- vue 图片添加,删除、拖拽排序
- c语言程序设计实验报告金陵科技学院,金陵科技学院c语言程序设计.doc
- python入门心得_python入门零基础心得(一)
- Paper reading (八十七):Human microbiome aging clocks based on DL