![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/CPP
基础必会题目
Tongxinlw
这个作者很懒,什么都没留下…
展开
-
喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以多少汽水。 编程实现。
**喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。**方法一:找规律,规律刚好是n元钱能喝2*n-1瓶水;方法二:#include <stdio.h>#include <stdlib.h>int num (int n){ if (n != 0)//零元返回零瓶 { if (n != 1)//一元返回一瓶 {...原创 2020-03-25 15:46:59 · 253 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个只出现一次的数字,编程实现。方法一:定义一个临时变量k=0,不断将数组每个数与数组每个元素比较,如果两个数相等k++,然后判断k是否等于1。如果为1,则这个数在数组只出现一次;如果k=2,说明出现两次。void find_num(int* arr, int sz){ int i,j; for (i = 0; i ...原创 2020-03-25 15:19:26 · 271 阅读 · 0 评论 -
判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 = AABCD和s2 = BCDAA,返回1 给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到A
判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = AABCD和s2 = BCDAA,返回1给定s1 = abcd和s2 = ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC方法:就是在拼接的字符串里查找旋转的字符串int findLeftMove(char* str, char * su...原创 2020-03-25 14:30:16 · 234 阅读 · 0 评论 -
实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB方法1 将字符串第一个的字符先复制一份,然后依次将字符串向左移动一位,再将第一个字符赋值到最后。若要左旋K个字符,只需循环K次。方法2 将字符串分为两部分,先将前K个字符逆置,再将后一部分字符串逆置,最后将整个字符串逆置。方法3 先开辟一个2*len+1字节的空间,在字符...原创 2020-03-25 13:49:09 · 191 阅读 · 0 评论 -
**杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);** 数组:
杨氏矩阵有一个二维数组.数组的每行从左到右是递增的,每列从上到下是递增的.在这样的数组中查找一个数字是否存在。时间复杂度小于O(N);数组:1 2 32 3 43 4 51 3 42 4 54 5 6解析:假如把数组的右上角作为选定数,如下图a。即3为选定数字,假设查找数字为7,第一次比较,7>3,因为3是第0行最大的数字,则7不可能出现在3所在行,所以将3所在行数...原创 2020-03-20 18:12:09 · 132 阅读 · 0 评论 -
调整数组使奇数全部都位于偶数前面。
调整数组使奇数全部都位于偶数前面。题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。#include <stdio.h>#include <stdlib.h>void func(int arr[], int size){ int i; int temp; int j ...原创 2020-03-20 17:07:00 · 133 阅读 · 0 评论 -
不使用(a+b)/2这种方式,求两个数的平均值
不使用(a+b)/2这种方式,求两个数的平均值解析:①第一步:用add函数 实现加法(代码见下方)②第二步:用avg函数 实现求平均值(代码见下方)原创 2020-03-19 21:01:41 · 109 阅读 · 0 评论 -
**编写函数:unsigned int reverse_bit(unsigned int value); 这个函数的返回值是value的二进制位模式从左到右翻转后的值。**
编写函数:unsigned int reverse_bit(unsigned int value);这个函数的返回值是value的二进制位模式从左到右翻转后的值。如:在32位机器上25这个值包含下列各位:00000000000000000000000000011001翻转后:(2550136832)10011000000000000000000000000000程序结果返回:2550...原创 2020-03-19 16:43:19 · 116 阅读 · 0 评论 -
在屏幕上打印杨辉三角。
在屏幕上打印杨辉三角。如图:解析:杨辉三角的规律是:它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。C-代码#include <stdio.h>#include <stdlib.h>int main(){ int i, j, k, arr[10][10] = { 0 };//arr[11][11]必须初始化,初始化为{0} prin...原创 2020-03-19 15:54:19 · 266 阅读 · 0 评论 -
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个 嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:不是我。B说:是C。C说:是D。D说:C在胡说已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。解析:首先,分析一下题目,嫌疑犯必定为A,B,C,D中其中的一人,因此我们可以定义一个变量 murder 来存储凶手,凶手从A开始到D结束,逐一...原创 2020-03-19 14:57:15 · 280 阅读 · 0 评论 -
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第二,我第三; B选手说:我第二,E第四; C选手说:我第一,D第二; D选手说:C最后,我第三; E选手说:我第四,A第一; 比
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。//解题步骤://1.根据题目,在不筛选的情况下每个人都有五种可能,所以第一步先展现出这五种可能,常用for循环//2.所有可能情况列出后,...原创 2020-03-19 11:56:52 · 269 阅读 · 0 评论 -
两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
#include<stdio.h>int main(){ int m, n,i,count=0; scanf("%d %d",&m,&n); for (i = 0; i <= 31; i++) { if (((m >> i)&1) != ((n >> i)&1))//不相等...原创 2020-03-19 10:48:41 · 122 阅读 · 1 评论 -
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#include <stdio.h> int main(){ int num = 0, i = 0; scanf("%d", &num); printf("奇数序列为:"); for (i = 31; i >= 0; i-=2) { printf("%d ",(num>>i)&1);//也是...原创 2020-03-19 10:17:03 · 125 阅读 · 0 评论 -
写一个函数返回参数二进制中 1 的个数
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1代码int main(){ int i,count=0; unsigned int value = 15; for (i = 0; i < 32; ++i) { if ((value &(1 << i)) != 0)//左移检测;...原创 2020-03-18 17:59:00 · 77 阅读 · 0 评论