请问下面两个程序中,为什么第一个运行正确,第二个却不行。
1:#include<stdio.h>#include<string.h>voidmain(){chara[90],c;inti=0,num=0;gets(a);do{w...
1:#include <stdio.h>
#include <string.h>
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
while((c=a[i])==' ') i++;
if(c!='\o') num++;
while((c=a[i])!=' '&&c!='\0') i++;
}
while(c!='\0');
printf("%d\n",num);
}
2:#include <stdio.h>
#include <string.h>
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
c=a[i];
while(c==' ') i++;
if(c!='\o') num++;
while(c!=' '&&c!='\0') i++;
}
while(c!='\0');
printf("%d\n",num);
} 展开
#include <string.h>
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
while((c=a[i])==' ') i++;
if(c!='\o') num++;
while((c=a[i])!=' '&&c!='\0') i++;
}
while(c!='\0');
printf("%d\n",num);
}
2:#include <stdio.h>
#include <string.h>
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
c=a[i];
while(c==' ') i++;
if(c!='\o') num++;
while(c!=' '&&c!='\0') i++;
}
while(c!='\0');
printf("%d\n",num);
} 展开
3个回答
展开全部
编译了一下,你的有两个错误,先要包含一个头文件,因为你用了gets函数,第二个是\后面是数字0,不是字母o。
#include <string.h>
#include<stdio.h>
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
c=a[i];
while(c==' ') i++;
if(c!='\0') num++;
while(c!=' '&&c!='\0') i++;
}
while(c!='\0');
printf("%d\n",num);
}
展开全部
第一个题你把所有可能的情况都验证了么?都正确?
我个人建议你用第二种。注意几个问题:
1、多个运算符构成的表达式在一起时,最好把他们都分别用()括起来,以免运算符级别不同,造成意外的可能值
2、字符串结束标志是\0,是个零,不是欧
我个人建议你用第二种。注意几个问题:
1、多个运算符构成的表达式在一起时,最好把他们都分别用()括起来,以免运算符级别不同,造成意外的可能值
2、字符串结束标志是\0,是个零,不是欧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个帮你改了下。。你看看。。
void main()
{
char a[90],c;
int i=0,num=0;
gets(a);
do
{
c=a[i];
if(c==' ') i++;
if(c!='\0') num++;
if(c!=' '&&c!='\0') {i++;}
}while(c!='\0');
printf("%d\n",num);
}
追问
while((c=a[i])==' ') i++;
if(c!='\0') num++;
while((c=a[i])!=' '&&c!='\0') i++;
只有这样才能运行成功,为什么?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询