/*大小写的字母都转换为大写字母(要求:必须用函数编写)*/
#include <stdio.h>
int main()
{
int toupper(char);
char ch,x,X,A,Z,a,z;
printf("请输入想要转换的字母:");
ch=getchar();
while( scanf("%f",&ch)!=x || scanf("%f",&ch)!=X )
{
if (ch >= A && ch <= Z)
putchar(ch);
break;
else if (ch >= a && ch <= z)
toupper(ch);
break;
else
printf("抱歉,您输入的字符有误,请输入正确的字符.\n");
break;
}
printf("您已完成本次操作!\n");
return 0;
}
int toupper (char x)
{
putchar(x-32);
}
抱歉,我是初学者,确实不是很懂啊,,可否给我解释下呢,,,,就是你帮我补充的这个程序我也不是很懂哈。。。麻烦啦。。。
追答scanf函数的原型是int scanf(格式控制参数,地址1,地址2,……);
初学者可以不必深究,但要会用。比如说,你要获取一个输入的字符,用scanf获取的话,应该这样写:
char ch;
printf("请输入想要转换的字母:");
scanf("%c", &ch);
这样变量ch中就保存了你输入的字符了。当然用ch = getchar(); 效果一样。
我们的一道题是要求当输入X或x时停止操作循环控制的,,那具体该怎么改呢??那个函数的,我用的不是很好。。
追答while( scanf("%f",&ch)!=x || scanf("%f",&ch)!=X ) // 改为 while (ch != 'x' && ch != 'X')
另外,if 语句用的也有问题呀,好好看看书。你的大括号呢?
if (...)
{
...
}
else if (...)
{
...
}
else
{
...
}
想继续输入的话,不能用break; 要用continue;
用break的话,while就终止了
if中的字符要加单引号,比如ch >= 'A' && ch <= 'Z'
抱歉,我按照你说的方法改了,可是结果就一直循环,不听我的控制啊。。。