| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1363 人关注过本帖
标题:我自己做的一道题,发生错误,希望大侠们帮忙分析
只看楼主 加入收藏
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
不能使用"string.h"啊??
嗯..得了,用自定义函数吧..
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char check(char a[20],char b[20]){
  int i;
  for(i=0;i<20 && a[i]!='\0' && a[i]!='\0';i++)
    if(a[i]!=b[i])
      return 0;
  return 1;
}
int main(void){
  char a[20],b[20];
  printf("Enter first string\n");
  scanf("%s",a);
  printf("Enter the second string\n");
  scanf("%s",b);
  if(check(a,b))
    printf("strings are equal\n");
  else
    printf("strings are not equal\n");
  getch();
  return 0;
}


实在没办法,我怎么也搞不好,用getchar取得不到值..

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 18:51
hjmHhyp
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-10-9
收藏
得分:0 
楼主试着用visual C++ 6.0试着调试,可以进一步分析,你的程序有逻辑错误,不止一个啊~
2008-11-22 18:55
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
[bo][un]hsyfglsd[/un] 在 2008-11-22 18:50 的发言:[/bo]

我确实能输入两个字符~~但是输好两个字符后,再按回车,就自动退出了。我以为是你的输出不好,我就用了#include<windows.h>和system("pause"),可是还是一样自动退出。我用的编译器是Dev-C++;

我还想问一下您这个程序中 1: return 1是返回到那里去的。
                         2:*a和*b是怎么回事?看不明白。

                         3:此程序中是用了自定义函数,是吗?

第一,return 1,是返回函数值,就是说相等,
第二,*a,*b,是指针,你可能还没学到..看样子的话你现在还是初学者,这种题目大概是在循环那一段吧..不清楚.
第三,使用了,
程序代码:
int check(char *a,char *b)
{
    for(;*a!='\0'&&*b!='\0';++a,++b)
        if(*a!=*b)    return 0;
    return 1;
}

这就是自定义函数,慢慢学吧..

这些问题因该是针对"广陵绝唱"程序里的问题吧?

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 18:58
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
回复ZQY:是的~~我在问一下,#include <stdlib.h>,是什么库函数,我在附录中,没发现
2008-11-22 19:07
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
[bo][un]hsyfglsd[/un] 在 2008-11-22 18:50 的发言:[/bo]

我确实能输入两个字符~~但是输好两个字符后,再按回车,就自动退出了。我以为是你的输出不好,我就用了#include和system("pause"),可是还是一样自动退出。我用的编译器是Dev-C++;

我还想问一下您这个程序中 1: r ...

晕死~~我把程序改一下,你看看可以不可以运行?
程序代码:
#include <stdio.h>
#define N 100
int check(char *a,char *b)
{
    for(;*a!='\0'&&*b!='\0';++a,++b)
        if(*a!=*b)    return 0;
    return 1;
}
int main(void)
{
    char a[N],b[N];
    printf("input a[]\n");
    scanf("%s",a);
    printf("input b[]:\n");
    scanf("%s",b);
    if(check(a,b))    printf("a=b\n");
    else    printf("a!=b\n");
    getchar();
    return 0;
}
2008-11-22 19:16
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
回复广陵绝唱:我试了一下,还是不行。一样的问题。可以输入字符,但是再得到结果的时候却退出了~~我还是自己先看看指针~~~谢谢你了
2008-11-22 19:20
hsyfglsd
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-11-22
收藏
得分:0 
回复hjmHhyp:我的那个程序有逻辑问题?我不清楚,你能告速我错在那里吗?我是哪里逻辑想错了,谢谢~·
2008-11-22 19:21
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
stdlib.h..怎么说呢
反正是一个比较有用的函数..
你看你们,让用户输入一个字符继续使用system("pause");  /*system调用bat命令,pause就不解释了*/
然后getch();是让用户输入一个数.

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 19:28
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
楼主,你用的是什么编译环境啊?
TC?Dev-c++?Visual C++?WinTc?还是什么??

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 19:32
zerojunyan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-2
收藏
得分:0 
其实15楼哪里可以直接用gets()啦。。。getchar()和return 0都可以不要啦。。。赞成他的函数写法。。。
2008-11-22 19:45
快速回复:我自己做的一道题,发生错误,希望大侠们帮忙分析
数据加载中...
 
   



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

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