高手进!提问关于while循环和字符输入间的问题!
红圈内应该是 != 你写反了
#include
using namespace std;
void main()
{
int i=0;
char arr[]="the boy and his dog,the girl and her cat.";
while((sizeof(arr)/sizeof(arr[0]))!=(i-4)) //算出字符个数,i-4是指倒数第三个字符的位置,多减了1是由于字符是从0开始算的
{
if(arr[i]=='a'&&arr[i+1]=='n'&&arr[i+2]=='d')
{
cout<<i<<endl;
}
i++;
}
}
至于你说的答案等于0,我想错了吧,因为我写了一个测试程序,答案得出的是1,源程序如下:
#include<stdio.h>
main()
{
char ch;
while(ch=getchar()=='A')
printf("%d\n",ch);
}
你也运行一下看看,得出的是1……
至于你后面写的验证程序其实是计算输入的连续‘A’的个数,也就是说不管你最后输入的是除了‘A’外的任意字符,程序就将跳出循环。
举个例子:比如你输入的是“AAAAAa”,输出的结果将是5,也就是连续‘A’的个数。所以根本不像前面几位兄弟所说的是因为你输入“回车”。要知道“回车”只是为了结束你的输入而已,每个程序只要有输入参数,回车是必须的。
希望我的解释对你有所帮助……
#include<stdio.h>
main()
{int i=0;char a;
while('A'==getchar())
{
i++;
fflush(stdin);
}
printf("%d\n",i);
}
改成这样就可以了,原因就是因为回车键的缘故
因为回车键跳出循环,因为在按下A后又按了一个回车键
我刚想了一下,不只是回车键的问题,如果是回车键的问题,那么执行while(ch=getchar()=='A'); 后ch的值应为10,对于这个程序,原因应该是==优先级比=高,while(ch=getchar()=='A'); 先执行getchar=='A',再将(getchar=='A')的值赋给ch,所以ch只有两种值0或1(getchar=='A'成立ch=1,不成立ch=0),
以下是正确程序:
#include<stdio.h>
main()
{int i=0;char ch;
while((ch=getchar())=='A')
{
i++;
putchar(ch);
fflush(stdin);
}
printf("%d\n",i);
}
while(M)
只有当M=0的时候才跳出循环。 这个应该可以理解吧。
第二个是你输入A的时候i++。此时i=1
所以 。。不懂得话可以留言
同时要说的是“=”于“==”的运算优先关系式后者先。
while(ch=getchar()=='A'); //在C语言中若变量已正确定义,可ch的值为空,所以在执行以上这个hile语句时,编译系统返回默认值为 0。
下面初值你自己定义的:int i=0;char a
当你输入A回车执行后,在i++的处理下返回值加1,所以运行结果为1。 这里程序是按顺序执行的.
恩 因为你按了回车 getchar是顺次得到你输入的字符 你输入完了就会取‘\0’也就是0
第二个问题 你输入了A 按了回车 getchar第一次得到A i++变成1 第二次得到0 条件不成立 跳出 所以不会执行i++ i就还是1
新手按键精灵循环问题
3.Next 由于按键精灵与VB不同,1句可以直接写成For [循环次数]可以在循环体中加入Exit For跳出循环,直接执行Next后的语句 优点:已知初值与终值或循环次数时非常好用 缺点:不能通过条件判断结束循环,只有在循环体中加入判断语句与Exit For才能实现该作用,较为繁琐 2.Do-Loop循环(While-Wend循环)...
新人求助,为什么我的while循环无法结束
循环无法结束:原因大体两个:新手状态会经常犯这样的错误: while(); while括号后面给了一个分号,这是不可以的!再有就是,如果不是上面错误,那就是停止条件不满足,一直处于true状态!看看你的终止变量如何定义的!
C语言高手进!switch case语言问题给解释一下答案
int x=0,y=2,z=3;switch(x){ case 0:switch(y==2){ case 1:printf("*");break;case 2:printf("%");break;} case 1:switch(z){ case 1:printf("");case 2:printf("");break;case 3:printf("#");} main(){ \/\/2473 \/\/668977 int c;while((c=getchar())!='\\n'...
strpos疑问,php高手进
你给我看看 while () 里的 表达式吧 ($pipeiwz=strpos($yuanma,$str1,$chaxunwz))!==false 这句话 你说的正确 确实 是 先赋值给 $pipeiwz 我觉得不是 这个代码的问题吧。--- if(($pipeiwz=strpos($yuanma,$str1,$chaxunwz))>=0)这个 当然 总是成立的啊,因为 strpos 找到了 返回...
While循环是怎样?
灵活运用for循环和while循环对编程有很大帮助。for循环适合于已知循环次数的场景,而while循环则适用于循环条件无法预知的场景。理解这两种循环的特性和用法,可以让你在编程时更加得心应手。如果你在编程过程中还有不懂的地方,欢迎在下方留言提问。希望这些解释能帮助你更好地理解While循环的使用。
UiPath手把手教程十一-循环控制活动(While,Do While)
欢迎来到Python知识学堂的微信公众号,作者在此分享UiPath学习经验,帮助大家避免常见问题。本期我们将深入探讨循环控制活动,包括While和Do While。对于英文界面的用户,我们将直接使用英文版本的UiPath进行讲解。上期内容已介绍控制语句,如switch-case,可以参考相关链接。今天,我们重点学习:1. While活动While...
C新手,请问while(--a)和while(!x)是什么意思,及什么时候停止该循环?不...
while(--a)就是用a这个变量的值去控制循环,没循环一次a的值就减少1,直到a的值减小到0,就停止循环 while(!x)是用x的值去控制循环,当x的值不为0的时候,停止循环
c++ recv()问题。高手进!
是你写的有问题,socket的recv遇到错误返回的SOCKET_ERROR你也加到recvlen中去了,一直加,recvlen < i_messagelen永不成立,死循环。int recv(SOCKET h_handle,char *pc_buff,int i_massagelen)\/\/h_hanle发送方的套接字, i_massagelen是数据长度 { int recvlen = 0;while(recvlen<i_massage...
matlab高手进!求程序在循环中求方差
前面就增加两行:i=1;while(marks>=0 &marks<=100)x(i)=marks; i=i+1; %保存每个分数 ……在disp前面输入:aver=sum\/people; %平均分 var=0; %方差 for j=1:len(x)var=var+(x(i)-aver)^2;end 后面加上disp var(方差)
Java新手问问题!请用for循环,while以及do while循环帮我写一个点餐系...
"请问您是否需要继续消费?(输入1,表示继续消费)"); int isContinue=scan.nextInt(); while(true){ if(isContinue==1){ System.out.println("请问您需要消费多少钱?"); money=scan.nextDouble();