标题:计算机为什么会这么这样??
只看楼主
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
结帖率:88.89%
已结贴  问题点数:20 回复次数:4 
计算机为什么会这么这样??
照片中第五题,我自己写的代码
程序代码:
#include<iostream>
using namespace std;
const int N=5;
void f(char(*p)[20],char*q);
void main()
{
    char str[N][20],(*p)[20]=str;
    char*ptfind="c++";
    int i;
    for(i=0;i<N;i++)
        gets(*(p+i));
    f(str,ptfind);
}
void f(char(*p)[20],char*q)
{
    int j;
    for(j=0;j<N;j++)
        if(*(p+j)[0]==*q)
            cout<<"找到了"<<endl;
        else
          cout<<"没找到"<<endl;
    for(j=0;j<N;j++)
        cout<<*(p+j)[0]<<endl;
}
我的问题是为什么
if(*(p+j)[0]==*q)
我只取每行的一个字符与“c++“比较也能输出找到了,我把输出结果截了屏。
搜索更多相关主题的帖子: 计算机 int void char cout 
2017-12-07 13:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
我只取每行的一个字符与“c++“比较也能输出找到了
怎么啦?!但你的算法不合题意,题目要求找到相同的字符串,而非第一个字符相同就可以。
比如你输入“cshit”,你的代码输出的是“找到了”

另外,非常严重的是,你得换本书了。
就你这代码去面试,别人失败了还能得到一个“下次有机会再合作”,而你的代码被面试官看到了,肯定是个“滚”,不说二字。

程序代码:
#include<iostream>           // #include <iostream>
using namespace std;
const int N=5;               // const size_t N = 5;
void f(char(*p)[20],char*q); // void f( const char (*)[20], const char* q );
void main()                  // int main( void )
{
    char str[N][20],(*p)[20]=str;
    char*ptfind="c++";       // const char* ptfind = "c++";
    int i;                   // 删除,并入下句
    for(i=0;i<N;i++)         // for( size_t i=0; i!=N; ++i )
        gets(*(p+i));        // gets早就被标准废弃了,使用 fgets
    f(str,ptfind);
}

2017-12-07 14:07
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
谢谢你指出我的毛病,首先我想请问是我写的代码烂是因为书的问题吗?我是一名大一计算机系新生,这本书是学校的教材
同时您有什么推荐吗?然后我本来是把
if(*(p+j)[0]==*q)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout<<"找到了"<<endl;
中的[0]去掉的,但这样会报错,报错显示表示出一行的字符数组也就是去掉[0]之后的类型和*q的不匹配,这我就弄不明白了?
2017-12-07 16:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 3楼 lemonandtree
if(*(p+j)[0]==*q)
改为
if( strcmp(p[j],q) == 0 )
2017-12-08 08:10
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
得分:0 
知道了,谢谢。
2017-12-08 08:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483188-1-1.html




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

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