搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 146|回复: 1
收起左侧

程序停止工作

[复制链接]

该用户从未签到

4

主题

19

好友

4808

积分

序章

积分
4808
发表于 2015-7-28 12:17:20 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
本帖最后由 Ti.定下契约 于 2015-7-28 12:21 编辑

#include <stdio.h>

#include <string.h>

#define NUM 81

char input(char *array,char ch,int num);

int main(void)

{

        char arr_ch[NUM],ch,*p;

        gets(arr_ch);

        ch=getchar();

        p=input(arr_ch,ch,strlen(arr_ch));

        printf("%p\n",p);

        return 0;


}





char input(char *array,char ch,int num)

{

        char chs[NUM],*p;

        int i,j,n,x;

        puts("************");

        fflush(stdin);

        gets(chs);

        printf("%s\n",chs);

        for(i=0;i<NUM;i++)

        {
               
                printf("%d,%c,%c\n",i,array[0],chs);
               
                if(array[0]==chs)

                        for(j=i,n=0;n<num;j++,n++)

                        {
                                
                                printf("%d,%c,%c\n",j,array[n],chs[j]);

                                if(chs[j]!=array[n])

                                        break;

                                if(n==num-1)

                                        for(x=i,n=0;n<num;x++,n++)

                                        {
                                                
                                                printf("%c,%c\n",ch,chs[x]);→   →  → 好像是到这里程序就停止了

                                                if(chs[x]==ch)

                                                {

                                                        p=chs[x];

                                                        printf("%c\n",*p);

                                                        return p;

                                                        break;

                                                }

                                                else return '\0';
                                       
                                        }
                        
                        }
        
        }

}
结果
array
r
************
the array
the array
0,a,t
1,a,h
2,a,e
3,a,
4,a,a
4,a,a
5,r,r
6,r,r
7,a,a
8,y,y
r,a
后面就没了


签名被小宅喵吞掉了~~~~(>_<)~~~~
回复

使用道具 举报

该用户从未签到

3

主题

58

好友

2万

积分

第一章

积分
20519
发表于 2015-8-2 00:07:36 | 显示全部楼层
你这程序目测就有一堆奇怪的地方,
比如:
(1)“printf("%d,%c,%c\n",i,array[0],chs);”,用%c(char字符)去打印chs这个地址值,main函数里的%p控制符我也没看懂是要干啥

(2)“if(array[0]==chs)”,拿char数组元素(1字节)跟地址值(4字节)做比较

(3)“if(n==num-1)”,用strlen计算出来的数组长度本身就不包含最后的NULL,这里传参过来的num减1是几个意思?

(4)“printf("%c\n",*p);   return p;”,明明p是指针变量,函数返回值是char型(1字节),return 却返回指针变量p的值(4字节)

麻烦你说下你的程序要实现的大致功能,你贴出来的代码实在是错误百出。。。。。。

评分

参与人数 1宅币 +50 活跃 +5 收起 理由
原味板烧鸡腿堡 + 50 + 5

查看全部评分

签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-6-16 20:29 , Processed in 0.118068 second(s), 23 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表