#include<iostream>
using namespace std;
int main()
{
char *p;
char a[100];
p=a;
gets(a);
int t;
while(*p!='\0')
{
t=0;
if((*p>'a'&&*p<'z')||(*p>'A'&&*p<'Z'))
;
else
t++;
p++;
}
cout<<"非英文字符的个数是"<<t;
return 0;
}
采用指针计数,但是程序返的数字一直是1
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- lshen01 2023-03-18 01:13关注
参考GPT和自己的思路:
这个问题的原因是变量t只在while循环中声明和赋值,每次循环完毕后变量t的值就被清零了,导致最终输出的t的值一直是0或1。
通过将变量声明和赋值移动到while循环外部,可以解决这个问题,代码如下:
#include<iostream> using namespace std; int main() { char *p; char a[100]; p=a; int t = 0; // 将变量声明并初始化放到while循环之前 gets(a); while(*p!='\0') { if((*p>'a'&&*p<'z')||(*p>'A'&&*p<'Z')) ; else t++; p++; } cout<<"非英文字符的个数是"<<t; return 0; }
这样输出的t就是正确的非英文字符的个数了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法