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 Wml
W
样例输出:
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第十四周大计基编程作业相关推荐

  1. XJTU第十三周大计基编程作业

    1. 字符线性表 ________________________________________ 创建一个字符线性表(顺序表),并实现其基本操作(如插入,查找,删除,输出等).应用该线性表,将键盘输 ...

  2. XJTU第八周大计基编程作业

    1. 题目描述: 输入总秒数,转换为相应的时.分.秒.提示:在输出时,请使用下面的格式(变量名不要求一样): printf("%d:%02d:%02d\n", h, m, s); ...

  3. 大数据导论第十三周、十四周课件以及课后作业

    各位同学好-- 1.课件下载:十三周课件--大数据时代的思维变革,点此下载 十四周课件--大数据促进医疗健康,激发创造力,点此下载

  4. 吴恩达机器学习第四周测验及编程作业

    代码:https://github.com/LiuZhe6/AndrewNGMachineLearning 文章目录 测验:Neural Networks: Representation 第一题 第二 ...

  5. 大计基编程(第十四周)

    排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...

  6. 大计基编程题(第十周)

    第一题 叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如: 小明会把1234它看成4321:把-1234看成-4321:把230看成032 (032=32):把-230看成-032(- ...

  7. 大计基编程题(第十二周)

    排序算法 如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 菜鸟教程排序算法 题目 排序算法 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 ...

  8. 第十四周练兵区——编程题——不计入总分

    1学生成绩管理系统V5.0(4分) 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).参考学生成绩管理系统V4.0,定义结构体类型,用结构体数组作函数参数 ...

  9. 大计基编程题(第十一周)

    题目 题目一 题目描述 题解 题目二 题目描述 题解 题目三 题目描述 题解 题目四 题目描述 题解 题目五 题目描述 题解 题目六 题目描述 题解 题目七 题目描述 题解 题目一 题目描述 编写函数 ...

最新文章

  1. 3Blue1Brown:“线性代数的本质”完整笔记
  2. D3.js可视化库入门视频教程
  3. 露雨资源库(第一个.net2.0软件)二
  4. c++语言表白超炫图形_青少年编程学习之C语言怎么学?现在知道,将来不亏!...
  5. AtCoder AGC024F Simple Subsequence Problem (字符串、DP)
  6. 内核并发控制---中断屏蔽 (来自网易)
  7. dump分析工具_阿里P8教你如何使用Jprofile解析dump文件
  8. vscode与git分支_Visual Studio Code 使用Git进行版本控制
  9. 安卓版teamview15.5.3
  10. 【JAVA】数据结构——堆的排序及相关面试题
  11. 2022保密教育线上培训考试参考答案 05
  12. 考研日语线上笔记(六):完型专项篇
  13. 计算机c盘如何扩容,C盘空间不足怎么办?4种方法获得更多空间!
  14. WebView启动支付宝客户端支付失败的解决办法
  15. 联想T430i笔记本电脑无声音
  16. S32K144之SDK版:CAN模块应用
  17. WPF快速入门2—布局WrapPanel,DockPanel,StackPanel,Canvas
  18. web端动效 lottie-web 使用
  19. 食品赛道崛起,舌尖美食走俏礼品市场
  20. 【求职】瓜子二手车 Java 方向面经

热门文章

  1. Superset 修改logo
  2. ABAP_ALV_Function方式与OO方式(较为简单、普通的ALV)
  3. 机器学习笔记(1)——线性回归
  4. 2013返利网评测报告 -来自爱爱网
  5. ShaderJoy —— ❤の霓虹【GLSL】
  6. NSM.so编译成功
  7. vue 图片添加,删除、拖拽排序
  8. c语言程序设计实验报告金陵科技学院,金陵科技学院c语言程序设计.doc
  9. python入门心得_python入门零基础心得(一)
  10. Paper reading (八十七):Human microbiome aging clocks based on DL