- 第 1 题(编程题)
- 第 2 题(编程题)
- 第 3 题(编程题)
- 第 4 题(编程题)
- 第 5 题 最小公倍数
- 第 6 题 倒置字符串
题目名称:
BC100-有序序列合并
题目内容:
BC100-有序序列合并
点击题目链接,做题
int main()
{
int n = 0;
int m = 0;
int arr1[1005] = { 0 };
int arr2[1005] = { 0 };
int arr3[2010] = { 0 };
//输入n和m
scanf("%d %d", &n, &m);
//输入两个升序序列
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (i = 0; i < m; i++)
{
scanf("%d", &arr2[i]);
}
//合并有序序列
i = 0;
int j = 0;
int k = 0;
while (i < n && j < m)
{
if (arr1[i] < arr2[j])
{
arr3[k++] = arr1[i++];
}
else
{
arr3[k++] = arr2[j++];
}
}
if (i == n)
{
for (; j < m; j++)
{
arr3[k++] = arr2[j];
}
}
else
{
for (; i < n; i++)
{
arr3[k++] = arr1[i];
}
}
//arr3打印
for (i = 0; i < k; i++)
{
printf("%d ", arr3[i]);
}
return 0;
}
//合并打印
int main()
{
int n = 0;
int m = 0;
int arr1[1000] = { 0 };
int arr2[1000] = { 0 };
//输入n和m
scanf("%d %d", &n, &m);
//输入两个升序序列
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (i = 0; i < m; i++)
{
scanf("%d", &arr2[i]);
}
//合并打印
i = 0;
int j = 0;
while (i < n && j < m)
{
if (arr1[i] < arr2[j])
{
printf("%d ", arr1[i++]);
}
else
{
printf("%d ", arr2[j++]);
}
}
if (i == n)
{
for (; j < m; j++)
{
printf("%d ", arr2[j]);
}
}
else
{
for (; i < n; i++)
{
printf("%d ", arr1[i]);
}
}
return 0;
}
第 2 题(编程题)
题目名称:
BC116-小乐乐改数字
题目内容:
BC116-小乐乐改数字
点击题目链接,做题
#include第 3 题(编程题)#include int main() { int n = 0; int i = 0; int sum = 0; scanf("%d", &n); while (n) { int m = n % 10; if (m % 2 == 1) m = 1; else m = 0; sum += m * pow(10, i); i++; n /= 10; } printf("%d", sum); return 0; }
题目名称:
BC60-带空格直角三角形图案
题目内容:
BC60-带空格直角三角形图案
点击题目链接,做题
int main()
{
int n = 0;
while (~scanf("%d", &n))
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i + j < n - 1)
{
printf(" ");
}
else
{
printf("* ");
}
}
printf("n");
}
}
return 0;
}
第 4 题(编程题)
题目名称:
BC37-网购
题目内容:
BC37-网购
点击题目链接,做题
#include第 5 题 最小公倍数int main() { double price = 0.0; int month = 0; int day = 0; int flag = 0; scanf("%lf %d %d %d", &price, &month, &day, &flag); double cut = 0.0; double money = 0.0; if (month == 11 && day == 11) { cut = 0.7; } else if (month == 12 && day == 12) { cut = 0.8; } money = price * cut - flag * 50; if (money < 0) { printf("%.2lf", 0.00); } else { printf("%.2lf", money); } return 0; }
题目名称:
最小公倍数
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
示例1
输入
5 7
输出
35
代码:
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
// a * i = b * j = 最小公倍数
int i = 1;
while (a * i % b)
{
i++;
}
printf("%dn", i * a);
return 0;
}
第 6 题 倒置字符串
倒置字符串
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
示例1
输入
I like beijing.
输出
beijing. like I
代码:
#include
void reverse(char* left, char* right)
{
assert(left);
assert(right);
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[101] = { 0 };
gets(arr);
int len = strlen(arr);
//1. 逆序整个字符串
reverse(arr, arr + len - 1);
//2. 逆序每个单词
char* start = arr;
while (*start != ' ')
{
char* end = start;
while (*end != ' ' && *end != ' ')
{
end++;
}
reverse(start, end - 1);
if (*end != ' ')
{
end++;
}
start = end;
}
printf("%sn", arr);
return 0;
}



