c语言问题,求救~
发布网友
发布时间:2023-07-17 21:41
我来回答
共3个回答
热心网友
时间:2024-11-25 11:49
#include<stdio.h>
int main(void)
{
int i,k;
char str[80];
char ch;
//printf("input:");
//getchar();//如果不把这个注释掉,那下面的ch读取的就是个空格
ch=getchar();
getchar();//读取输入的要查找的字符后的空格
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\n';
k=-1;//k等于一个小于0的,因为也许第一个字符就是要找的下标
for(i=0;str[i]!='\n';i++)
if(str[i]==ch){
k=i;
/*printf("index=%d",k);*/}//不是每次找到都输出,只是输出最后一个既标号最大的
if(k>=0)//只有k>=0时才查找到,最后输出找到的标号或者没查到
printf("index=%d",k);
else
printf("Not Found");
getchar();//这个是为了不让程序查询完后直接退出
return 0;
}
热心网友
时间:2024-11-25 11:49
#include<stdio.h>
int main()
{
int i=0,j=0,k,flag=0;
char str[80];
char ch;
//printf("input:");
ch=getchar();
getchar();
while((str[i]=getchar())!='\n')
i++;
//str[i]='\n';
for(j=0;j<=i;j++)
{
if(str[j]==ch)
{
flag=1;
k=j+1;
printf("index=%d",k);
break;
}
}
if(flag=0)
{
printf("Not Found");
}
return 0;
}
你的错误在于,for循环后面如果不加{ },默认值循环一行,所以只循环if(),,,else没有配对。
热心网友
时间:2024-11-25 11:50
#include<stdio.h>
int main(void)
{
int i,k=0; //给k赋初值0用于判断
char str[80];
char ch;
//printf("input:");
scanf("%c",&ch);
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
if(str[i]==ch){
k=i;
} //这样改的目的是等它循环完。
if (k!=0)printf("index=%d",k);
else printf("Not Found");
return 0;
}