如果不太了解各种排序算法可以参考菜鸟教程(希望对你有帮助) 有一个包含奇数个项的整数序列,请编程按照以下规则排序:最大值排在中间,最小值排在最左,中值排在最右,其它值清为0。输入2行,第一行n表示要输入的数的个数,n是奇数。第二行输入的n个数。输出,排序后的数组,数据空格分隔,最后一个数据后面没有空格。 输入样例: 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 题目描述: 输入输出格式: 输入: 年,月(逗号分隔) 输出: 天数 题目描述: 样例: 15,25 最小公倍数是75 1. 求p和q的最大公约数的欧几里德算法: 2. p和q的最小公倍数为p乘以q再除以它们的最大公约数。 题目描述: 查找一个字符在字符串中的第一个位置并输出这个位置。 输入输出格式: 输入:待查找的字符串和需要查找的字符。(输入时,待查找的字符串与所需查找的字符用*号隔开) 输出:字符的位置(如有多个相同的字符,只查找第一个。) 样例: I am a student*m 输出: 4 题目描述: 输入两个整型数组(假设数组的大小为不超过10)的各个元素,输出不是两个数组共有的元素,并从小到大排序输出。 输入输出格式: 输入:两个数组的元素(小于10个),数组中第一个数据指示元素的个数 输出:两个数组的元素中非共有的元素,并且从小到大进行排序 样例: 输入: 7 1 2 3 4 5 6 7 6 5 6 7 8 9 0 输出: 0 1 2 3 4 8 9 定义一个含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 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.
排序算法
题目
题目一
题目描述
5
12 20 9 88 32
输出样例:
9 0 88 0 20题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> /*冒泡排序法*/ void booble(int* array, int n) { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (array[j]>array[j+1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } int t = (n - 1) / 2;//t即为中间是的数的序号 /*交换中间的数和最大的数的位置*/ int temp = array[t]; array[t] = array[n-1]; array[n - 1] = temp; /*除中间数和最大最小数全都赋值为0*/ for (size_t i = 1; i < n-1; i++) { if (i!=t) { array[i] = 0; } } } int main() { int n; scanf("%d", &n); int *description = (int*)malloc(n * sizeof(int)); for (size_t i = 0; i < n; i++) { scanf("%d", (description+i)); } booble(description, n); for (size_t i = 0; i < n-1; i++) { printf("%d ", *(description + i)); } printf("%d", *(description+n-1)); }
题目二
题目描述
输入格式: 输入表示若干种石子的初始情况,包含两个非负整数 a 和 b ,表示两堆石子的数目, a 和 b 都不大于1,000,000,000 。
输出格式: 包含一个数字 1 或 0 ,如果最后你是胜者,则为 1 ,反之,则为 0 。
输入样例:
2 1
输出样例:
0题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> int main() { // freopen("in.txt","r",stdin); int a, b, k, ta; scanf("%d%d", &a, &b); if (a > b) { int t = a; a = b, b = t; } k = b - a; ta = (int)floor(k * ((sqrt(5.0) + 1) / 2)); printf("%d", ta == a ? 0 : 1); return 0; }
题目三
题目描述
输入公元年份和月份,输出该月份的天数。题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> int main() { int year, mon, day; scanf("%d,%d", &year, &mon); if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) { day = 31; } else if (mon == 2) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) day = 29; else day = 28; } else day = 30; printf("%d", day); return 0; }
题目四
题目描述
输入两个正整数,输出其中最大公约数和最小公倍数。
输入输出格式:
输入: 从键盘输入两个正整数
输出: 最大公约数和最小公倍数。
输入:
输出:
最大公约数是5
(1)输入p和q(p>q)
(2)计算p和q的余数r
(3)r=0时,q即为最大公约数,转第(4)步
否则,令p=q,q=r,继续执行第(2)步
(4)输出q题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> void swap(int*a, int*b) { int temp = a; a = b; b = temp; } int main() { int num1,num2; scanf("%d,%d", &num1, &num2); int multiple = num1 * num2; if (num1<num2) { swap(&num1, &num2); } while (num1 % num2 !=0) { int r = num1 % num2; num1 = num2; num2 = r; } printf("最大公约数是%dn最小公倍数是%dn", num2, multiple / num2); return 0; }
题目五
题目描述
输入:题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> int main() { char num1[200]; char num2; gets(num1); num2 = num1[strlen(num1) - 1]; for (size_t i = 0; i < strlen(num1); i++) { if (num1[i]==num2) { printf("%d", i+1); return 0; } } }
题目六
题目描述
题解
#include<stdio.h> void bubblesort(int a[], int n);//函数原型 int main() { int a[10]; int b[10]; int c[20],d[20]; int n,k=0,i,j; scanf("%d", &a[0]); for (i = 1; i <=a[0]; i++) scanf(" %d", &a[i]); scanf("%d", &b[0]); for(i=1;i<=b[0];i++) scanf(" %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++)//往下判断数组元素是否重复,并且将不重复项赋给数组d { int w = 0;//易漏 for (j = 0;j< a[0] + b[0]; j++) { if (c[i] == c[j]) w++;//巧妙的判断 } if (w==1)//等号别漏 { d[k] = c[i]; k++;//直接赋值,不用for循环,利用前面的for循环的余温 } } bubblesort(d, k);//函数引用 printf("%d", d[0]); for(i=1;i<k;i++) printf(" %d", d[i]); //不合法语句//system ("pause"); return 0; } void bubblesort(int a[], int n)//定义冒泡排序函数,含指针 { int i, j, h; for (i = 0; i < n - 1; i++)//使下面的梳理顺序再次执行(最多只需执行n-1次,例如43210,经过5-1=4次梳理,可得01234) { for (j = 0; j < n - i - 1; j++)//单次梳理顺序,顺序排列(例如43210,经过1次梳理,可得32104) { if (a[j] > a[j + 1])//数值交换 { h = a[j + 1]; a[j + 1] = a[j]; a[j] = h; } } } }
题目七
题目描述
题解
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int n,m; scanf("%d", &n); int a[20], b[10]; for (size_t i = 0; i < 10; i++) { a[i] = i + 1; } for (size_t j = 0; j < n; j++) { scanf("%d", &b[j]); } scanf("%d", &m); for (size_t i = 0 ; i < n; i++) { for ( int j=i+10; j >i+n;j--) { a[j] = a[j-1]; } a[i + m] = b[i]; } for (size_t i = 0; i < 10+n-1; i++) { printf("%d ", a[i]); } printf("%d", a[10 + n-1]); }
题目八
题目描述
题解
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int iPrime(int N) { if (N == 0 || N == 1) return 0; for (int i = 2; i * i <= N; i++) if (N % i == 0) return 0; return 1; } int Rev(int N, int D) { int Nrev; for (Nrev = 0; N; N /= D) { Nrev *= D; Nrev += N % D; } return Nrev; } int main() { int N, D,i=0; int a[100]; while (1) { scanf("%d", &N); if (N<=0) { break; } scanf("%d", &D); if (iPrime(N) && iPrime(Rev(N, D))) a[i] = 1; else a[i] = 0; i++; } for (size_t j = 0; j < i; j++) { if (a[j]) printf("Yesn"); else printf("Non"); } return 0; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算