深圳高端建设网站,做ppt高手_一定要常去这八个网站,房地产新闻最新消息今天,住房和城建设网站第一题#xff1a;中位数
思路#xff1a;
解法一#xff1a;暴力比较#xff0c;两个数之间一直比较得出中位数
解法二#xff1a;快排函数#xff0c;数组中间值即为中位数
代码#xff1a;
1.c语言版#xff1a;
#include stdio.h
int arr[10010];
vo…第一题中位数
思路
解法一暴力比较两个数之间一直比较得出中位数
解法二快排函数数组中间值即为中位数
代码
1.c语言版
#include stdio.h
int arr[10010];
void solve() {int a, b, c;scanf(%d %d %d, a, b, c);arr[1] a;arr[2] b;arr[3] c;// 使用冒泡排序来排序 arr[1], arr[2], arr[3]for (int i 1; i 2; i) { // 需要排序两轮for (int j 1; j 2; j) {if (arr[j] arr[j 1]) {// 交换 arr[j] 和 arr[j 1]int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}// 输出中间值printf(%d\n, arr[2]);
}int main() {int t;scanf(%d, t);while (t--) {solve();}return 0;
}2.c版
#includebits/stdc.h
using namespace std;
int arr[10010];
void solve() {int a, b, c;cin a b c;arr[1] a;arr[2] b;arr[3] c;sort(arr 1, arr 1 3);cout arr[2] endl;return;
}
int main() {int t;cin t;while(t--)solve();return 0;
}
第二题求和
思路判断是否有两个数相加为第三个数即可
代码 1.c语言版
#include stdio.h
void solve() {int a, b, c;scanf(%d %d %d, a, b, c);if (a b c || a c b || b c a) {printf(YES\n);} else {printf(NO\n);}
}
int main() {int t;scanf(%d, t);while (t--) {solve();}return 0;
}2.c版
#includebits/stdc.h
using namespace std;
void solve() {int a, b, c;cin a b c;if (a b c || a c b || b c a) {cout YES\n;}else {cout NO\n;}return;
}
int main() {int t;cin t;while(t--)solve();return 0;
}
第三题字符倒置简易版
思路使用gets函数读入字符串字符串中有可能含有空字符串根据其长度倒序输出即可
代码
1.c语言
#include stdio.h
#include stdlib.h
#include string.h
int main()
{
char a[10000];
int b,i;
gets(a);
bstrlen(a);
for(ib-1;i0;i--)
printf(%c,a[i]);
return 0;
}
2.c:
#includebits/stdc.h
using namespace std;
void solve() {string s;getline(cin,s);int l s.size();for (int i s.size() - 1; i 0; i--) {cout s[i];}return;
}
int main() {solve();return 0;
}
第四题求a/b
思路除法不多说注意(保留10位小数)即可
代码
#includestdio.h
int main()
{int a,b;while(scanf(%d %d,a,b)!EOF){printf(%.10lf\n,(double)a/b);}return 0;
}
第五题这怕又是一道水题了
思路判断长度为n的数组中的每个元素是否都比m小若小于m的个数n,即yes否则no
代码
1.c:
#include stdio.h
int a[100010];
void solve() {int n, m;scanf(%d %d, n, m); // 使用 scanf 获取 n 和 mint num 0;// 输入数组for (int i 1; i n; i) {scanf(%d, a[i]); // 输入数组元素}
// 计算符合条件的个数for (int i 1; i n; i) {if (m a[i]) {num; // 如果 m 大于 a[i]计数加 1}}
// 判断并输出结果if (num n) {printf(yes\n);} else {printf(no\n);}
}
int main() {solve();return 0;
}2.c:
//}
#includebits/stdc.h
using namespace std;
int a[100010];
void solve() {int n, m;cin n m;int num 0;for (int i 1; i n; i)cin a[i];for (int i 1; i n; i)if (m a[i])num;if (num n)cout yes\n;else cout no\n;return;
}
int main() {solve();return 0;
}
第六题插数排序
思路根据题目要求先进行判断若小于最后一个数再进行插入我们需要遍历一遍数组找到一个合适位置进行插入其左边的数要插入的数其右边的数 这道题可以去学一下set
代码(未使用set):
#include stdio.h
int main() {int n, num, k;int arr[10010]; // 假设最多有 10000 个元素int idx 0; // 当前数组的元素数量// 输入 n 个整数scanf(%d, n);while (n--) {scanf(%d, num);// 插入前检查是否已经存在避免重复int exists 0;for (int i 0; i idx; i) {if (arr[i] num) {exists 1;break;}}if (!exists) {arr[idx] num; // 插入元素到数组}}// 输入 k 并插入scanf(%d, k);int exists 0;for (int i 0; i idx; i) {if (arr[i] k) {exists 1;break;}}if (!exists) {arr[idx] k; // 插入 k}// 使用插入排序对数组进行排序for (int i 1; i idx; i) {int key arr[i];int j i - 1;// 将大于 key 的元素右移while (j 0 arr[j] key) {arr[j 1] arr[j];j--;}arr[j 1] key;}// 输出集合中的元素for (int i 0; i idx; i) {printf(%d , arr[i]);}return 0;
}使用set:
#includebits/stdc.h
using namespace std;
void solve() {int n, m, k;cin n;setints;while (n--) {cin m;s.insert(m);}cin k;s.insert(k);for (auto ss: s) {cout ss ;}return;
}
int main() {solve();return 0;
}
第七题星号图形
思路发现规律从第一行开始*前面的空格数n-当前行数*数2*当前行数-1
代码
1.c
#include stdio.hvoid solve() {int n;scanf(%d, n); // 读入整数nfor (int i 1; i n; i) {// 打印前导空格for (int j 1; j n - i; j) {printf( );}// 打印星号for (int k 1; k 2 * i - 1; k) {printf(*);}// 打印换行printf(\n);}
}int main() {solve(); // 调用solve函数return 0;
}2.c:
#includebits/stdc.h
using namespace std;
void solve() {int n;cin n;for (int i 1; i n; i) {for (int j 1; j n - i; j)cout ;for (int k 1; k 2 * i - 1; k)cout *;cout endl;}return;
}
int main() {solve();return 0;
} 第八题冠军
思路
输入字符串,若相邻的五个字符分别为edgnb则将个数1
代码
1.c:
#include stdio.h
#include string.hvoid solve() {char s[100001]; // 假设最大字符串长度为 100000scanf(%s, s); // 读取字符串int l strlen(s); // 获取字符串长度int k 0;// 注意循环到 l - 5因为我们要检查每个位置是否有 edgnb 字符串for (int i 0; i l - 5; i) {if (s[i] e s[i 1] d s[i 2] g s[i 3] n s[i 4] b) {k; // 如果匹配计数加 1}}printf(%d\n, k); // 输出结果
}int main() {solve(); // 调用 solve 函数return 0;
}2.c:
#includebits/stdc.h
using namespace std;
void solve() {string s;cin s;int l s.size();int k 0;for (int i 0; i l; i) {if (s[i] e s[i 1] d s[i 2] g s[i 3] n s[i 4] b)k;}cout k endl;return;
}
int main() {solve();return 0;
}