关于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
不能改动主函数,要怎么解决?
程序作用 展开
#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
不能改动主函数,要怎么解决?
程序作用 展开
3个回答
展开全部
你这个函数是的意思应该是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--;
}
}
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--;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你搜一下setmem这个函数声明在哪个头文件,然后你include这个头文件,如果你没有发现哪个头文件声明但是有源文件定义,那你就在调用之前extern这个函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
setmem(b,6*sizeof(int),0);
这个函数没有定义
这个函数没有定义
更多追问追答
追问
那应该怎么改呢?
追答
把这个函数的定义写进源程序里啊
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |