| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2338 人关注过本帖
标题:break非法破坏怎么办
只看楼主 加入收藏
mm1746886443
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-11-2
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
break非法破坏怎么办
#include<stdio.h>
main()
{
     char  st[20],*ps;
     int i;
     printf("input a string:\n");
     ps=st;
     scanf("%s",ps);
     for(i=0;ps[i] !='\0';i++);
     if(ps[i]=='k'){
     printf("there is a 'k' in the string\n ");
     break;
     }
if(ps[i]=='\0') printf("There is no 'k' in the string\n");     
}
搜索更多相关主题的帖子: 非法 printf the break string 
2019-12-04 18:10
wangxinbozj
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:18
注 册:2019-12-1
收藏
得分:3 
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-12-04 19:43
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:566
专家分:3690
注 册:2019-7-29
收藏
得分:17 
程序代码:
#include<stdio.h>

int main()
{
    char  st[20],*ps;
    int i;

    printf("input a string:\n");
    ps=st;
    scanf("%s",ps);

    for(i=0;ps[i] !='\0';i++)
    {
        if(ps[i]=='k')
        {
            printf("there is a 'k' in the string\n ");
            break;
        }
        if(ps[i]=='\0')
            printf("There is no 'k' in the string\n");
    }

    return 0;
}

for(i=0;ps[i] !='\0';i++);
你for后面有个;号,导致for循环结束。
后面的
if(ps[i]=='k'){
     printf("there is a 'k' in the string\n ");
     break;
     }
不在循环里,而break是跳出循环的命令,所以会报错。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-04 20:10
mm1746886443
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-11-2
收藏
得分:0 
回复 3楼 纯蓝之刃
感谢
2019-12-04 21:21
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
收藏
得分:0 
程序代码:
for(i=0;ps[i] !='\0';i++);
     if(ps[i]=='k'){
     printf("there is a 'k' in the string\n ");
     break;
     

3楼说的对,for后面有一个分号导致循环结束了,所以break相当于放在if里,只要把分号去掉就可以了
另外for里的语句没有大括号的话最好空两格
程序代码:
for(i=0;ps[i] !='\0';i++)
       if(ps[i]=='k'){
     printf("there is a 'k' in the string\n ");
     break;
     }
2019-12-04 21:25
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
收藏
得分:0 
回复 5楼 Jason_
这里的代码在论坛手动打的,格式有点偏差
2019-12-04 21:26
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
网站首页有在线编程,可以用于编写代码,调试、运行。
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-12-05 15:49
mm1746886443
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-11-2
收藏
得分:0 
任务:要求输入5个国名并按字母顺序排列后输出。在以前的例子中采用了普通的排序方法,逐个比较之后交换字符串的位置。总感觉有问题大佬们瞅瞅
#include<stdio.h>
#include<string.h>
main()
{
    void sort (char *name[],int n);
    void print(char *name[],int n);

    static char *name[]={"CHINA","AMERICA","AUSTRALIA",
        "FRANCE","GERMAN"};
    int n=5;
    sort(name,n);
    print(name,n);


}
void sort(char *name[],int n)
{
    char *pt;
    int i,j,k;
    for(j=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(strcmp(name[k],name[j])>0)    k=j;
            if(k!=i)
            {
                pt=name[i];
                name[i]=name[k];
                name[k]=pt;
            }
    }
}
void print(char *name[],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%s\n",name[i]);
}
2019-12-09 22:15
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:0 
for(j=0;i<n-1;i++)

认真写代码,回头再仔细检查
2019-12-10 10:18
mm1746886443
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2019-11-2
收藏
得分:0 
回复 9楼 bcbbcclbbc
我看不懂
2019-12-10 15:37
快速回复:break非法破坏怎么办
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019512 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved