c语言用选择结构判断两个输入数字的大小,要求键盘输入两个数字,输出哪个数字大于哪个数字或者小于或者相等,打印出相关的输出信息。
时间: 2024-09-20 07:12:20 浏览: 41
在C语言中,你可以使用if-else或switch-case的选择结构来实现这个功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num1, num2; // 定义两个整型变量
printf("请输入第一个数字: ");
scanf("%d", &num1);
printf("请输入第二个数字: ");
scanf("%d", &num2);
if (num1 > num2) { // 比较num1是否大于num2
printf("数字%d比%d大。\n", num1, num2);
} else if (num1 < num2) { // 如果不大于,则比较num1是否小于num2
printf("数字%d比%d小。\n", num1, num2);
} else { // 如果相等
printf("数字%d和%d相等。\n", num1, num2);
}
return 0;
}
```
在这个程序里,我们首先获取用户输入的两个数字,然后通过一系列if-else条件判断它们之间的大小关系,并打印相应的消息。
相关问题
、从键盘中任意输入一个大于0的浮点型数据,请输出这个数据与它最相近、且为5的倍数的数据(如输入4.8则输出5,输入11.2则输出10),若与相邻两个5的倍数距离相等,则输出-1。c语言
在C语言中,你可以通过以下几个步骤来实现这个功能:
```c
#include <stdio.h>
#include <math.h>
int main() {
float input;
printf("请输入一个大于0的浮点型数据: ");
scanf("%f", &input);
// 检查输入是否大于0
if (input <= 0) {
printf("输入错误,只能输入正数。\n");
return 0;
}
// 计算与5的倍数最近的整数值
int nearest_multiple = round(input / 5) * 5;
// 判断当前值与5的倍数的距离
float distance_to_lower = fmod(input, 5);
float distance_to_upper = (nearest_multiple - input);
// 如果两者距离相等且非零,则输出-1
if ((fabs(distance_to_lower) == fabs(distance_to_upper)) && distance_to_lower != 0) {
printf("-1\n");
} else { // 否则输出最近的5的倍数
printf("%.0f\n", nearest_multiple);
}
return 0;
}
```
在这个程序中,我们首先读取用户输入的浮点数,然后计算其与5的最近整数倍。`round()`函数用于四舍五入到最接近的整数,`fmod()`用于计算余数。如果输入的数与下一个小于它的5的倍数和上一个大的5的倍数的距离相等且非零,那么就输出-1,否则直接输出所找到的那个5的倍数。
独立实现标准字符串库的strcmp函数,即字符串比较函数,从键盘输入两个字符串,按字典序比较大小,前者大于后者输出1,前者小于后者输出-1,两者相等输出0。
在许多编程语言中,标准库通常提供内置的字符串比较函数如C++的`std::compare`,或者C语言的`strcmp`。如果你想独立实现这个功能,可以按照下面的步骤编写一个简单的strcmp-like函数:
```c
#include <stdio.h>
#include <string.h> // 需要使用strlen获取字符串长度
// 自定义strcmp函数
int custom_strcmp(const char* str1, const char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 如果其中一个字符串较短,则直接比较
if (len1 != len2) {
return len1 > len2 ? 1 : -1;
}
// 逐字符比较,直到找到第一个不同的字符
for (int i = 0; i < len1; ++i) {
if (str1[i] > str2[i]) {
return 1;
} else if (str1[i] < str2[i]) {
return -1;
}
}
// 如果所有字符都相同,返回0表示相等
return 0;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 要去除末尾的换行符
str1[strlen(str1) - 1] = '\0'; // 去除多余的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
int result = custom_strcmp(str1, str2);
switch (result) {
case 1:
printf("字符串 %s 比字符串 %s 大\n", str1, str2);
break;
case -1:
printf("字符串 %s 比字符串 %s 小\n", str1, str2);
break;
case 0:
printf("字符串 %s 和字符串 %s 相等\n", str1, str2);
break;
}
return 0;
}
```
在这个示例中,我们首先获取用户输入的两个字符串,然后通过遍历每个字符并进行比较来确定它们的顺序。如果遇到不同的字符,就立即返回结果;如果遍历完都没有差别,说明字符串相等。
阅读全文