发布网友 发布时间:2024-10-04 04:14
共5个回答
热心网友 时间:2024-10-25 13:54
错误代码:
if('a'<=nextchar<='z'||'A'<=nextchar<='Z')
else if('0'<=nextchar<='9')
修改后:
#include <stdio.h>
int main()
{
int letter=0,space=0,number=0,others=0;
char nextchar;
printf("Input your string\n");
for(;nextchar!='\n';)
{
scanf("%c",&nextchar);
if('a'<=nextchar&&nextchar<='z'||'A'<=nextchar&&nextchar<='Z')
letter++;
else if(nextchar==' ')
space++;
else if('0'<=nextchar&&nextchar<='9')
number++;
else
others++;
}
printf("letter=%d,space=%d,number=%d,others=%d\n",letter,space,number,others);
}
扩展资料
c++输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<cstdio>
int main()
{
char x[999];
int i,a=0,b=0,c=0,d=0;
gets(x);
for(i=0;i<=x[i];i++)
{
if('A'<=x[i]&&x[i]<='z')
a++;
else if('0'<=x[i]&&x[i]<='9')
b++;
else if(x[i]==' ')
c++;
else
d++;
}
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
热心网友 时间:2024-10-25 13:53
#include<stdio.h>热心网友 时间:2024-10-25 13:50
一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。
三、参考代码:
#include <stdio.h>热心网友 时间:2024-10-25 13:52
#include "stdio.h"热心网友 时间:2024-10-25 13:54
错误代码:
1.'a'<=nextchar<='z'||'A'<=nextchar<='Z';
2.'0'<=nextchar<='9'。
错误原因:当多个条件时,需要使用逻辑运算符。
修改后代码为:
int main(void){
int letters = 0, spaces = 0, digits = 0, others = 0;
char c;
printf("输入一行字符串:\n");
while ((c = getchar()) != '\n')
{
if ((c >= 'a'&&c <= 'z') || (c >= 'A'&&c <= 'Z'))
{
letters++;
}
else if (c == ' ')
{
spaces++;
}
else if (c >= '0'&&c <= '9')
{
digits++;
}
else
{
others++;
}
}
printf("字母=%d,数字=%d,空格=%d,其他=%d\n", letters, digits, spaces, others);
return 0;
}
扩展资料:
逻辑运算符可以将两个或多个关系表达式连接成一个或使表达式的逻辑反转。本节将介绍如何使用逻辑运算符将两个或多个关系表达式组合成一个。
&& 运算符被称为逻辑与运算符。它需要两个表达式作为操作数,并创建一个表达式,只有当两个子表达式都为 true 时,该表达式才为 true。
|| 运算符被称为逻辑或运算符。它需要两个表达式作为操作数,并创建一个表达式,当任何一个子表达式为 true 时,该表达式为 true。
! 运算符被称为逻辑非运算符,执行逻辑 NOT 操作。它可以反转一个操作数的真值或假值。换句话说,如果表达式为 true,那么 ! 运算符将返回 false,如果表达式为 false,则返回 true。
参考资料:
百度百科-逻辑运算符