| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:编译错误,菜鸟一枚
只看楼主 加入收藏
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
结帖率:0
收藏
 问题点数:0 回复次数:7 
编译错误,菜鸟一枚
char name[5][20];
char fi[1][20];
k=cmp(name[0],fi[0]);//调用
int cmp(char a[],char b[])//函数定义
{
int i,j,k;
for(i=0;i<5;i++)
    {
    for(j=0;b[0][j]!='0';j++)
        if(a[i][j]!=b[0][j]) break;//这里出错
    if(b[0][j]=='0')k++;//这里也是
    }
return k;
}
全部代码是这样的
#include<stdio.h>
void main()
{
int cmp(char a[],char b[]);
char name[5][20];
char NO[5][10];
char fi[1][20];
int mark[5];
int i,k;
for(i=0;i<5;i++)
    {
    printf("please input NO.%d name:\n",i+1);
    scanf("%s",name[i]);
    printf("\n please input NO.%d number:\n",i+1);
    scanf("%s",NO[i]);
    printf("\n please input NO.%d mark:\n",i+1);
    scanf("%d",mark[i]);
    printf("\n");
    }
printf("please the name you find:\n");
scanf("%s",fi);
k=cmp(name[0],fi[0]);
printf("the name is %s number is %d\n",fi[0],k);
}
int cmp(char a[],char b[])
{
int i,j,k;
for(i=0;i<5;i++)
    {
    for(j=0;b[0][j]!='0';j++)
        if(a[i][j]!=b[0][j]) break;
    if(b[0][j]=='0')k++;
    }
return k;
}

[ 本帖最后由 a6670892 于 2014-4-28 01:04 编辑 ]
搜索更多相关主题的帖子: include return 
2014-04-28 01:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
定义的是一维数组   然后当二维去用
想啥呢

DO IT YOURSELF !
2014-04-28 05:25
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
查查书,二维数组作为参数该怎么写。把参数改成二维数组。
2014-04-28 06:40
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
回复 2 楼 wp231957
函数调用那里的定义不是相当于放一个地址吗?我想的是把二维数组的地址传给cmp函数
2014-04-28 20:16
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
回复 3 楼 ying8501
我只是想把二维数组的地址传给cmp函数
2014-04-28 20:21
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
回复 2 楼 wp231957
而且我去掉调用部分,我只能输入一次for,然后就提示我关闭程序了。
2014-04-28 20:32
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
回复 6 楼 a6670892
关掉程序的问题不用回了,我知道了。呵呵
2014-04-28 20:54
a6670892
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2014-4-25
收藏
得分:0 
#include<stdio.h>
void main()
{
int cmp(char a[],char b[]);
char name[5][20]={0};
char NO[5][10]={0};
char fi[1][20]={0};
int mark[5]={0};
int i,k,j;
char *a,*b;
for(i=0;i<5;i++)
    {
    printf("please input NO.%d name:\n",i+1);
    scanf("%s",name[i]);}
printf("please the name you find:\n");
scanf("%s",fi[0]);
for(i=0,k=0;i<5;i++)
    {
    a=&name[i][0];
    b=&fi[0][0];
    for(j=0;*(b+j)!='0';j++)
        if(*(a+j)!=*(b+j)) break;
    if(*(b+j)=='0')k++;
    }   
printf("the name is %s number is %d\n",fi[0],k);
}
为什么K=0?我想找出在name数组中和fi数组相同的有多少个,不能使用strcmp
2014-04-28 23:36
快速回复:编译错误,菜鸟一枚
数据加载中...
 
   



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

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