帮我看一下这道C语言题为什么不对 谢谢!!!急!!
输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始);否则输...
输入一个字符,再输入一个以回车结束的字符串(少于80 个字符),在字符串中查找该字符。如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出“NotFound”。
【输入形式】
输入一个字符和一个以回车结束的字符串
【输入输出样例1】(下划线部分表示输入)
Input a character: m
Input a string: programming
index=7
【输入输出样例2】(下划线部分表示输入)
Input a character: a
Input a string: 1234
Not Found
-----------------------------------------------------------------------
我的程序
#include<stdio.h>
int main(void)
{
int i=0,k=0,flag=0;
double index;
char str[80],m;
printf("Input a character: ");
scanf("%c",&m);
printf("Input a string: ");
getchar();
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
for(i=0;str[i]!='\0';i++){
if(str[i]==m) k=i;
flag=1;}
if(flag==1) printf("index=%d\n",k);
else
printf("Not Found\n");
return 0;
}
为什么 不能输出NOT FOUND 啊 就是测试的第二个数据不对 谢谢!! 展开
【输入形式】
输入一个字符和一个以回车结束的字符串
【输入输出样例1】(下划线部分表示输入)
Input a character: m
Input a string: programming
index=7
【输入输出样例2】(下划线部分表示输入)
Input a character: a
Input a string: 1234
Not Found
-----------------------------------------------------------------------
我的程序
#include<stdio.h>
int main(void)
{
int i=0,k=0,flag=0;
double index;
char str[80],m;
printf("Input a character: ");
scanf("%c",&m);
printf("Input a string: ");
getchar();
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
for(i=0;str[i]!='\0';i++){
if(str[i]==m) k=i;
flag=1;}
if(flag==1) printf("index=%d\n",k);
else
printf("Not Found\n");
return 0;
}
为什么 不能输出NOT FOUND 啊 就是测试的第二个数据不对 谢谢!! 展开
2015-05-16
展开全部
if(str[i]==m) k=i;
flag=1;} 这里有问题 判断结果不管是什么flag都会被赋值为1
flag=1;} 这里有问题 判断结果不管是什么flag都会被赋值为1
更多追问追答
追问
那可以问一下怎么修改吗??
追答
加上括号嘛
if(str[i]==m) {k=i;
flag=1;}}
2015-05-16
展开全部
f(str[i]==m) k=i;
flag=1;
应该改成
if(str[i]==m)
{
k=i;;
flag=1;
break;
}
flag=1;
应该改成
if(str[i]==m)
{
k=i;;
flag=1;
break;
}
更多追问追答
追问
那第一个又不对啦 变成了6
追答
这是因为getchar();
while((str[i]=getchar())!='\n')
这里的问题。你第一个输入的字符没有被包含在数组里。
可改为gets(str);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询