题目内容: 编写程序完成以下要求:从键盘输入两个数,进行相除,显示商和余数。当输入串中含有非数字时或除数为0时,通过异常处理机制,使程序能正确运行。 输入格式: 输入两个数字,用英文逗号分隔,不需要给出提示性输出,即input()函数不要有任何参数 输出格式: 输出表示这两个数字的除法算式,结果包含商和余数
时间: 2024-02-15 20:04:24 浏览: 216
编写程序实现以下功能:从键盘输入十个整数,用冒泡法排序后按从小到大输出
以下是使用C语言编写的程序,实现从键盘输入两个数,进行相除,显示商和余数,并通过异常处理机制,使程序能正确运行:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main() {
char input[20];
int a, b, result, remainder;
printf("请输入两个数字,以英文逗号分隔:");
if(fgets(input, sizeof(input), stdin) != NULL) {
char *comma = strchr(input, ',');
if(comma != NULL) {
*comma = '\0';
a = atoi(input);
b = atoi(comma+1);
if(b == 0) {
printf("除数不能为0!\n");
return 1;
}
result = a / b;
remainder = a % b;
printf("%d / %d = %d ... %d\n", a, b, result, remainder);
} else {
printf("输入格式错误,必须用英文逗号分隔两个数字!\n");
return 1;
}
} else {
printf("输入错误!\n");
return 1;
}
return 0;
}
```
在此程序中,我们使用了fgets()函数来获取用户输入的字符串,然后使用strchr()函数来查找逗号的位置,将其替换为字符串结束符'\0',然后使用atoi()函数将两个字符串转换为整数,进行相除操作,并输出商和余数。如果用户输入的字符串中不包含逗号,或者除数为0,程序会进行异常处理,输出错误提示信息。
阅读全文