标题:计算机为什么会这么这样??
取消只看楼主
lemonandtree
Rank: 2
等 级:论坛游民
帖 子:74
专家分:10
注 册:2017-10-5
结帖率:88.89%
已结贴  问题点数:20 回复次数:2 
计算机为什么会这么这样??
照片中第五题,我自己写的代码
程序代码:
#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
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
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 1.588278 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved