C语言 这道题选什么 帮我详细讲解下每一步
展开全部
选B。
难理解的是while循环语句内的内容,现简单解释一下。
while ( s[i]!='\0' ) // '\0'代表字符串结束,循环在遇到字符串结束符之前进行
{ c1 = s[i]; // 将当前字符存入c1
if ( i==0 ) c2 = ' '; //处理首字符时,令c2为空,这时候i=0,取s[i-1]是非法的。
else c2 = s[i-1]; //如果不是首字符,则令c2为s[i-1],即当前位置的前一个字符。
if ( c1 != ' ' && c2== ' ' ) num++; //如果当前字符不是空格,而上一个是空格,则说明遇到了一个单词,所以num++。
i++; //移到下一个位置再看。
}
总结其算法要点,就是如果当前字符不是空格而上一位置是空格,那么就遇到了一个新单词。
难理解的是while循环语句内的内容,现简单解释一下。
while ( s[i]!='\0' ) // '\0'代表字符串结束,循环在遇到字符串结束符之前进行
{ c1 = s[i]; // 将当前字符存入c1
if ( i==0 ) c2 = ' '; //处理首字符时,令c2为空,这时候i=0,取s[i-1]是非法的。
else c2 = s[i-1]; //如果不是首字符,则令c2为s[i-1],即当前位置的前一个字符。
if ( c1 != ' ' && c2== ' ' ) num++; //如果当前字符不是空格,而上一个是空格,则说明遇到了一个单词,所以num++。
i++; //移到下一个位置再看。
}
总结其算法要点,就是如果当前字符不是空格而上一位置是空格,那么就遇到了一个新单词。
展开全部
#include<stdio.h>
void main()
{
int x,y;
char ch;
scanf("%d %c %d",&x,&ch,&y);
switch(ch)////////ch \n
{
case '+':printf("%d %c %d=%d\n",x,ch,y,(x+y));break;//少了逗号
case '-':printf("%d %c %d=%d\n",x,ch,y,x-y);break;
case '*':printf("%d %c %d=%d\n",x,ch,y,x*y);break;
case '/':printf("%d %c %d=%d\n",x,ch,y,x/y);break;
default:printf("E\n");
}
}
void main()
{
int x,y;
char ch;
scanf("%d %c %d",&x,&ch,&y);
switch(ch)////////ch \n
{
case '+':printf("%d %c %d=%d\n",x,ch,y,(x+y));break;//少了逗号
case '-':printf("%d %c %d=%d\n",x,ch,y,x-y);break;
case '*':printf("%d %c %d=%d\n",x,ch,y,x*y);break;
case '/':printf("%d %c %d=%d\n",x,ch,y,x/y);break;
default:printf("E\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询