关于C语言程序的问题··············

#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*a,intb[]){intj,st;st... #include <conio.h>
#include <stdio.h>
#include <string.h>

void fun(char *a, int b[])
{ int j,st;
st=strlen(a)-1;
setmem(b,6*sizeof(int),0);
for (j=0;j<=st;j++)
{switch (a[j])
{
case 'a':b[0]++;break;
case 'b':b[1]++;break;
case 'c':b[2]++;break;
case 'd':b[3]++;break;
case 'e':b[4]++;break;
default :b[5]++;break;
}
}

}
main()
{ int i, b[6]; char a[100] = "bacd1b+ddep";

fun(a, b);
printf("The result is: ");
for (i=0; i<6; i++) printf("%d ", b[i]);
printf("\n");
NONO();
}

NONO( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *rf, *wf ;
char a[100], *p ;
int b[6], i, j ;
rf = fopen("in7.dat", "r") ;
wf = fopen("bc07.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fgets(a, 99, rf) ;
p = strchr(a, '\n') ;
if(p) *p = 0 ;
fun(a, b) ;
for(j = 0 ; j < 6 ; j++) fprintf(wf, "%d ", b[j]) ;
fprintf(wf, "\n") ;
}
fclose(rf) ;
fclose(wf) ;
}
运行错误提示说setmem undefined
不能改动主函数,要怎么解决?
程序作用
展开
 我来答
大衍之49
2012-06-23 · TA获得超过1048个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:1059万
展开全部
你这个函数是的意思应该是setmem,为b分配6个int长度的地址空间,并且每个偏移地址(或是说b的元素)初始为0了

void setmem(int **p ,int size,int value){
int m=size/sizeof(int);
*p=(int*)malloc(size);
if(!p) return;
int *p1;
p1=*p;
while(m){
*(p1++)=0;
m--;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友906779cfc
2012-06-22 · TA获得超过521个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:431万
展开全部
你搜一下setmem这个函数声明在哪个头文件,然后你include这个头文件,如果你没有发现哪个头文件声明但是有源文件定义,那你就在调用之前extern这个函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weixyc
2012-06-22 · TA获得超过1128个赞
知道小有建树答主
回答量:763
采纳率:100%
帮助的人:482万
展开全部
setmem(b,6*sizeof(int),0);
这个函数没有定义
更多追问追答
追问
那应该怎么改呢?
追答
把这个函数的定义写进源程序里啊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式