为自己的调试程序的能力真感到惭愧 conflicting types for ‘index’

xuukai 2011-06-29 12:06:27
又麻烦大家了:
ubuntu: $ gcc -o a 2011_6_29_a.c
2011_6_29_a.c:8: error: conflicting types for ‘index’

#include"stdio.h"
#include"string.h"
#define N 1000

char a[N][N]={0};
int b[N]={0} ,t;

int index(char* s){
int i;

for(i=0;i<t;i++)
if(strcmp(s,a[i])==0)
return i;
mencpy(a[t],s,strlen(s));
t++;

return t-1;
};


int main(){
int n,m,i,j,k;
char s[100];
freopen("osca.in","r",stdin);
freopen("osca.in","r",stdin);
while(scanf("%d",&n),n>0){
t=0;
memset(a,0,sizeof a);
memset(b,0,sizeof b);
for(i=0;i<n;i++){
scanf("%s",s);
scanf("%d",&m);
for(j=0;j<m;j++){
scanf("%s",s);
k=index(s);
b[k]++;
}
}
k=0;


...全文
450 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
至善者善之敌 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yq_118 的回复:]
C/C++ code
#include <strings.h>

char *index(const char *s, int c);

char *rindex(const char *s, int c);


index是gnu的扩展。所以这里就不能在定义一个index了。

gcc可以用-std=c89或-std=c99选项来关闭……
[/Quote]


帮顶
stein42 2011-07-01
  • 打赏
  • 举报
回复
       #include <strings.h>

char *index(const char *s, int c);

char *rindex(const char *s, int c);

index是gnu的扩展。所以这里就不能在定义一个index了。

gcc可以用-std=c89或-std=c99选项来关闭扩展,遵守c语言标准。
初学时建议一直使用这个选项。
ace99999 2011-07-01
  • 打赏
  • 举报
回复
大家的眼睛都是雪亮的
xuukai 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zhao4zhong1 的回复:]

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
……
[/Quote]

您的资料很多,很有含金量,谢谢!
hustlaofan 2011-06-29
  • 打赏
  • 举报
回复
int index(char* s){
int i;

for(i=0;i<t;i++)
if(strcmp(s,a[i])==0)
return i;
mencpy(a[t],s,strlen(s));
t++;

return t-1;
};

memcpy 不是mencpy
赵4老师 2011-06-29
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://zhao4zhong1.download.csdn.net/里面下载“适合程序员的键盘练习”
qqmsyz520 2011-06-29
  • 打赏
  • 举报
回复
freopen("osca.in","r",stdin);
freopen("osca.in","r",stdin);
两次 不知道你要做啥
hu7324829 2011-06-29
  • 打赏
  • 举报
回复

int main(){
int n,m,i,j,k;
char s[100];
freopen("osca.in","r",stdin);
freopen("osca.in","r",stdin);
while(scanf("%d",&n),n>0){
t=0;
memset(a,0,sizeof a);
memset(b,0,sizeof b);
for(i=0;i<n;i++){
scanf("%s",s);
scanf("%d",&m);
for(j=0;j<m;j++){
scanf("%s",s);
k=myindex(s);//替换成非index才行,不知道为什么??
b[k]++;
}
}
k=0;
}//少一个while的}
}//少一个main的}

赵4老师 2011-06-29
  • 打赏
  • 举报
回复
index改为myindex试试。
luciferisnotsatan 2011-06-29
  • 打赏
  • 举报
回复
conflicting types
但从代码里看不出这个问题。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧