vs2013,scanf输入的报错。
#include<iostream>
using namespace std;
#include<stdio.h>
int maxn(int a, int b, int c)
{
a=a > b ? a : b;
return a > c ? a : c;
}
char chchange(char a)
{
if ('a'<=a&&a<='z')
{
a = a + ('A' - 'a');
}else if ('A' <= a&&a <= 'Z')
{
a = a + ('a' - 'A');
}
return a;
}
/*作业:
1.从键盘中输入三个整数,求其最大值。
2.从键盘中输入一个字符,如果是小写字母,转换大写字母
如果是大写字母,转换为小写字母,如果是其他字符,保持不变。*/
int main()
{
int a, b, c;
printf("请输入三个整数:\n");
scanf_s("%d%d%d", &a, &b, &c,3);
printf("MAX=%d\n",maxn(a,b,c));
printf("请输入一个字符:\n");
char mcheng;//用于吸收上次的回车,让下一次scanf能够正确的读取到数据
getchar();
scanf_s("%c",&mcheng,1);
printf("处理结果:%c\n",chchange(mcheng));
return 0;
}
需要在格式符前加空格或者在第二个输入语句前释放回车。