特征C-函数,对其行为的误解
要求编写以下函数的练习:特征C-函数,对其行为的误解,c,function,stdio,C,Function,Stdio,要求编写以下函数的练习: 读取仅在用户输入“\n”时结束的字母字符序列(不记忆序列) 如果大写字母数超过用户输入的最大整数m中的较小值,则返回1,否则返回0 我尝试了以下代码: #include<stdio.h> int read(int p,char c) { int M=0,m=0,d; char A,Z,a,z; while(c != '\n') { if(A<=c<=Z) {
- 读取仅在用户输入“\n”时结束的字母字符序列(不记忆序列)
- 如果大写字母数超过用户输入的最大整数m中的较小值,则返回1,否则返回0
#include<stdio.h>
int read(int p,char c)
{
int M=0,m=0,d;
char A,Z,a,z;
while(c != '\n')
{
if(A<=c<=Z)
{
M++;
}
else if(a<=c<=z)
{
m++;
}
scanf("%c",&c);
}
if(M-m>0)
d=(m-M);
else
d=0;
if(d==0)
return 0;
else if (d<=p)
return 1;
}
int main()
{
int a,h;
char k;
scanf("%d", &h);
scanf("%c", &k);
a=read(h,k);
printf("%d\n",a);
return 0;
}
#包括
整数读取(整数p,字符c)
{
int M=0,M=0,d;
字符A,Z,A,Z;
而(c!='\n')
{
如果(A这不符合你的预期
if(A<=c<=Z)
…并删除四个变量char A,Z,A,Z;
请注意,使用字符常量,如'A'
和'Z'
假设运行时环境使用ASCII字符集。如果您对更便携的解决方案感兴趣,可以查找isupper()
和islower()
stdin
仍然有'\n'
字符;第二个scanf
为k
AA
,Z
,A
和Z
都是未初始化的变量。@fidingbits对不起,我想我明白你的意思,但我不知道如何修复它,你错了假设int k=9,按下回车键h,就是我按下的回车键@nullp0tr@p._phidot_很抱歉,我想我可以使用char变量,然后从ascii中为它们指定整数值,对吗?我明白了,谢谢,但是为什么我不能将A,z,A,z;初始化为char变量,然后忽略“”,con将它们作为整数排序?如果你愿意,你可以初始化四个变量,但你不会赢得任何东西。在一天结束时,它们是常量。好的,非常感谢,我理解了你所说的一切,现在程序的问题是我输入整数,比如说9,程序结束,因为我为作为secon的scanf输入了“\n”对不起,我很久没有做任何低级输入代码了,所以我没办法
if('A'<=c && c<='Z')