| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1138 人关注过本帖
标题:计算机为什么会这么这样??
取消只看楼主 加入收藏
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
快速回复:计算机为什么会这么这样??
数据加载中...
 
   



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

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