一道c语言找错......error C2143: 语法错误 : 缺少“;”(在“类型”的前面),求帮忙 坐等

#include<stdio.h>
main()
{
void disp(char *s,int n);
char a[20],*q=a;
printf("input a string\n");
scanf("%s",q);
void disp(char (q+3),int 7);
}
void disp(char *s,int n)
{
int i;
for(i=0;i<=n-1;i++)
{
printf("%c",s[i]);
if(s[i]=='\0')
break;
}
}
error的位置在void disp(char (q+3),int 7); 求高手说一下怎么改???

第1个回答  2011-11-15
#include<stdio.h>
main()
{
void disp(char *s,int n);
char a[20],*q=a;
printf("input a string\n");
scanf("%s",a);
disp((q+3),7);
}
void disp(char *s,int n)
{
int i;
for(i=0;i<=n-1;i++)
{
printf("%c",s[i]);
if(s[i]=='\0')
break;
}
}
这样就可以了,原因是你没弄清声明函数和调用函数的区别。
void disp(char (q+3),int 7);是声明函数
disp( (q+3), 7);是调用函数;
希望对你有帮助!!!
第2个回答  2011-11-15
#include<stdio.h>
void disp(char *,int);
int main(void)
{
char a[20],*q;
q=a;
printf("input a string\n");
scanf("%s",q);
disp((q+3),7);
}
void disp(char *s,int n)
{
int i;
for(i=0;i<=n-1;i++)
{
printf("%c",s[i]);
if(s[i]=='\0')
break;
}
}
~本回答被提问者采纳
第3个回答  2011-11-15
主函数里面的第一句“void disp(char *s,int n);”放到“#include<stdio.h>”的下一行,要不把main函数的整体放在子函数后面!追问

呵呵那样不行 我原先就是那么编的

第4个回答  2011-11-15
main 函数没返回类型, 当语句处理了追问

c 好像不需要返回值吧 不是c++ c++貌似需要

第5个回答  2011-11-15
void disp(char (q+3),int 7);
改为
disp((q+3),7);
相似回答