有没有一种方法可以输入数字和字母是不同的走向
本帖最后由 小小心心 于 2021-4-22 18:17 编辑老师布置了作业;
然后不会写了TAT
第一题
要求输入大写字母得小写字母,然后输入数字得数字字符。
怎么样才能输入数字得到数字,输入字母得到字母……
1
#include<stdio.h>
main()
{
char x;
printf("请输入大写字母\n");
x = getchar() + 32;
putchar(x);
}
2
#include<stdio.h>
main()
{
int x;
printf("请输入0~9的一个数字\n");
scanf_s("%d", &x);
putchar(x+'0');
}
这两个怎么整到一个程序里……
第二题
#include<stdio.h>
void main()
{
int x, y=0;
printf("请输入x\n"); scanf_s("%d", &x);
if (x > -5 && x < 10)
printf("y=%d", y = x);
if (0 == x)
printf("y=%d", y = --x);
if (x > 0 && x < 10)
printf("y=%d", y = ++x);
else printf("???");
} 这算的是一个简单数学题,但是我输入“-0-0-00--”还能得到y值,而不是”???“ 本帖最后由 yuxijian2020 于 2021-4-22 20:04 编辑
第一题整合判断就行了
大写字母0x4a ~ 0x5a输入这个区间的就转小写
小写字母0x61 ~ 0x7a输入这个区间的就转大写
数字字符0x30 ~ 0x39 输入1 ~ 9直接加 0x30就转成字符了
void ChangerAndPrint()
{
printf_s("请输入字符或数字:");
char c = getchar();
if (c >= 'A' && c <= 'Z')
{
c += 0x20;
printf_s("输入的是大写字母!\n");
}
else if (c >= 'a' && c <= 'Z')
{
c -= 0x20;
printf_s("输入的是小写字母!\n");
}
else if (c <= '0' || c >= '9')
{
printf_s("输入的是数字\n");
}
else
{
printf_s("输入的不是数字也不是字母!\n");
}
printf_s("转换后为: %c", c);
}
第二题 是因为你限定了 %d 就是说 scanf 只读取整数
你输入"-0-0-00--" scanf 只读取了 -0 后面的字符因为不是整数了还存在于缓冲区 yuxijian2020 发表于 2021-4-22 20:02
第一题整合判断就行了
大写字母0x4a ~ 0x5a输入这个区间的就转小写
小写字母0x61 ~ 0x7a输入这个 ...
哇,看不明白主函数是什么,然后改成了main(),就可以运行了,
输入ffff可以得到f,
输入F也是得到f
输入90得到9{:5_91:}
输入++可以显示出“输入的是数字”哈哈哈哈哈然后输出+ yuxijian2020 发表于 2021-4-22 20:02
第一题整合判断就行了
大写字母0x4a ~ 0x5a输入这个区间的就转小写
小写字母0x61 ~ 0x7a输入这个 ...
我改了一下else if (c <= '0' || c >= '9')改成&&,但是这样输入数字也会导致显示"输入的不是数字也不是字母!\n 小小心心 发表于 2021-4-22 21:44
我改了一下else if (c = '9')改成&&,但是这样输入数字也会导致显示"输入的不是数字也不是字母!\n
else if (c <= '0' || c >= '9')
条件错了 不好意思
else if (c >= '0' || c <= '9')
页:
[1]