第1题:指定顺序输出
依次输入3个整数a、b、c,将他们以c、a、b的顺序输出。
时间限制:1000
内存限制:65536
输入
一行3个整数a、b、c,以空格分隔。 0 < a,b,c < 108
输出
一行3个整数c、a、b,整数之间以一个空格分隔。
样例输入
1 2 3
样例输出
3 1 2
以下是使用C语言编写的解决方案,用于将输入的三个整数按指定顺序输出:
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
printf("%d %d %d\n", c, a, b);
return 0;
}
在此解决方案中,我们首先使用scanf
函数读取输入的三个整数a
、b
和c
。然后,我们使用printf
函数按指定顺序输出这三个整数。
编译并运行上述代码,根据给定的输入示例,将会输出按指定顺序排列的三个整数:
3 1 2
第2题:成绩判定
给定一门课的考试分数,如果分数大于等于60,则该门课成绩合格,记为"P", 否者成绩不合格,记为"F"。
时间限制:1000
内存限制:65536
输入
一个整数s,表示这门课的分数.(0 ≤ s ≤ 100)
输出
如果成绩合格,输出字母P,否者输出字母F。
样例输入
59
样例输出
F
以下是使用C语言编写的解决方案,用于根据给定的考试分数判断成绩是否合格:
#include <stdio.h>
int main() {
int score;
scanf("%d", &score);
if (score >= 60) {
printf("P\n");
} else {
printf("F\n");
}
return 0;
}
在此解决方案中,我们使用scanf
函数读取输入的考试分数score
。然后,我们使用条件语句if
来判断分数是否大于等于60。如果是,则输出字母"P"表示成绩合格。否则,输出字母"F"表示成绩不合格。
编译并运行上述代码,根据给定的输入示例,将会输出成绩判定结果:
F
第3题:简单排序
依次输入3个整数a、b、c,将他们从小到大的顺序输出。
时间限制:1000
内存限制:65536
输入
一行3个整数a、b、c,以空格分隔。 0 < a,b,c < 108
输出
一行3个整数,即将a、b、c从小到大排序的3个整数,整数之间以一个空格分隔。
样例输入
10 5 20
样例输出
5 10 20
以下是使用C语言编写的解决方案,用于将输入的三个整数从小到大的顺序输出:
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void sort(int *a, int *b, int *c) {
if (*a > *b) {
swap(a, b);
}
if (*b > *c) {
swap(b, c);
}
if (*a > *b) {
swap(a, b);
}
}
int main() {
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
sort(&a, &b, &c);
printf("%d %d %d\n", a, b, c);
return 0;
}
在此解决方案中,我们定义了两个辅助函数。swap
函数用于交换两个整数的值,sort
函数用于对三个整数进行排序。
在主函数中,我们首先使用scanf
函数读取输入的三个整数a
、b
和c
。然后,我们调用sort
函数对这三个整数进行排序。sort
函数使用冒泡排序算法,通过多次比较和交换来将最小的数移到最前面。
最后,我们使用printf
函数按从小到大的顺序输出排序后的三个整数。
编译并运行上述代码,根据给定的输入示例,将会输出从小到大排序的三个整数:
5 10 20
第4题:数字求和
给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?
时间限制:3000
内存限制:65536
输入
输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。
输出
输出一行,给出一个正整数,是5个数中小于a的数的和。
样例输入
10 1 2 3 4 11
样例输出
10
以下是使用C语言编写的解决方案,用于计算给定的5个整数中小于a的整数的和:
#include <stdio.h>
int main() {
int a, num1, num2, num3, num4, num5;
scanf("%d %d %d %d %d %d", &a, &num1, &num2, &num3, &num4, &num5);
int sum = 0;
if (num1 < a) {
sum += num1;
}
if (num2 < a) {
sum += num2;
}
if (num3 < a) {
sum += num3;
}
if (num4 < a) {
sum += num4;
}
if (num5 < a) {
sum += num5;
}
printf("%d\n", sum);
return 0;
}
在此解决方案中,我们首先使用scanf
函数读取输入的整数a
以及另外的5个整数。然后,我们定义一个变量sum
用于存储小于a的整数的和,并初始化为0。
接下来,我们使用条件语句if
来判断每个输入的整数是否小于a。如果是,则将该整数加到sum
中。
最后,我们使用printf
函数输出计算得到的小于a的整数的和。
编译并运行上述代码,根据给定的输入示例,将会输出小于a的整数的和:
10
第5题:数1的个数
给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。
例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。
时间限制:1000
内存限制:65536
输入
正整数n。1 <= n <= 10000。
输出
一个正整数,即“1”的个数。
样例输入
12
样例输出
5
以下是使用C语言编写的解决方案,用于计算从1到n的所有整数中出现的数字"1"的个数:
#include <stdio.h>
int countOnes(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
int num = i;
while (num > 0) {
if (num % 10 == 1) {
count++;
}
num /= 10;
}
}
return count;
}
int main() {
int n;
scanf("%d", &n);
int onesCount = countOnes(n);
printf("%d\n", onesCount);
return 0;
}
在此解决方案中,我们定义了一个名为countOnes
的函数,用于计算从1到n的所有整数中出现的数字"1"的个数。
在countOnes
函数中,我们使用一个循环从1到n遍历每个整数。对于每个整数,我们使用一个内部循环将其各个位上的数字逐个提取,并检查是否为1。如果是,则将计数器count
增加1。
在主函数中,我们首先使用scanf
函数读取输入的正整数n。然后,我们调用countOnes
函数计算从1到n的所有整数中出现的数字"1"的个数。最后,我们使用printf
函数输出计算得到的数字"1"的个数。
编译并运行上述代码,根据给定的输入示例,将会输出数字"1"的个数:
5