老是报错,请高手指点啊

Arvin2016 2011-08-20 02:47:20
# include <stdio.h>
# include <string.h>
void fun();
void main()
{
char s[31],str[31];
for(;;)
{
printf("Enter a string :");scanf("%s",&s);
if(strlen(s)>30)
{printf("The string too large!The End.\n");break;}
printf("Old string:%s\n",s);
fun(s,str);
printf("New string:%s\n",str);
}
}
void fun(char s[],char str[])
{
int k,p;
p=strlen(s);str[p]='\0';
for(k=0;k<p;k++)str[p-k-1]=s[k];
}


报错信息:D:C语言\lesson1_3\字符串.cpp(15) : error C2660: 'fun' : function does not take 2 parameters
...全文
109 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
那年的月光 2011-08-20
  • 打赏
  • 举报
回复
你的函数声明有问题,只要把第三行改成void fun(char*,char*);就好了
周凯_csdn 2011-08-20
  • 打赏
  • 举报
回复
double * p = (double *)malloc(sizeof(1));
到底分配了几个字节,1个还是8个;个人认为是8个。。。。
AnYidan 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cmarquis 的回复:]
void fun();
声明与定义的参数类型不一定,编译器认为fun不带参数。
[/Quote]
++
empare 2011-08-20
  • 打赏
  • 举报
回复
的确,是楼主在写程序时,没注意到函数的使用有关声明和定义须一致的问题。
modicum_lf 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cmarquis 的回复:]
void fun();
声明与定义的参数类型不一定,编译器认为fun不带参数。
[/Quote]

++
jernymy 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cmarquis 的回复:]
void fun();
声明与定义的参数类型不一定,编译器认为fun不带参数。
[/Quote]
正解
暮雨晨舟 2011-08-20
  • 打赏
  • 举报
回复
楼上的各位已经说的很清楚了,LZ可以结贴了。貌似你的结贴率现在还是0
Qyee16 2011-08-20
  • 打赏
  • 举报
回复

# include <stdio.h>
# include <string.h>
void fun();
void fun(char*, char*);//在c++编译器中,也不会有错的,这叫“重载”
void main()
{
char s[31],str[31];
for(;;)
{
printf("Enter a string :");scanf("%s",&s);
if(strlen(s)>30)
{printf("The string too large!The End.\n");break;}
printf("Old string:%s\n",s);
fun(s,str);
printf("New string:%s\n",str);
}
}
void fun(char s[],char str[])
{
int k,p;
p=strlen(s);str[p]='\0';
for(k=0;k<p;k++)str[p-k-1]=s[k];
}


void fun();
void fun(char*, char*);
你的问题是,声明了void fun()函数,却使用的是void fun(char* , char*)的原型,所以报错了。
chenqian00141 2011-08-20
  • 打赏
  • 举报
回复
# include <stdio.h>
# include <string.h>
void fun(char s[],char tr[])
{
int k,p;
p=strlen(s);
for(k=0;k<p;k++)
{
tr[p-k-1]=s[k];
tr[p]='\0';
}
}
void main()
{
char s[31],tr[31];
for(;;)
{
printf("Enter a string :");
scanf("%s",&s);
if(strlen(s)>30)
{
printf("The string too large!The End.\n");
break;
}
printf("Old string:%s\n",s);
fun(s,tr);
printf("New string:%s\n",tr);
}
}
Jxiaoshen 2011-08-20
  • 打赏
  • 举报
回复
# include <stdio.h>
# include <string.h>
void fun(char[],char[]);

改成上面这样
Jake443403168 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cmarquis 的回复:]
void fun();
声明与定义的参数类型不一定,编译器认为fun不带参数。
[/Quote]
++
fun()声明和定义不一致
pwxcomer 2011-08-20
  • 打赏
  • 举报
回复
fun函数的声明是没有参数的,但是下面的定义中有参数,档案会报错了…。把上面的函数声明改成 void fun(char s[],char str[]);
tianmo2010 2011-08-20
  • 打赏
  • 举报
回复
# include <stdio.h>
# include <string.h>
void fun(); void main()
{
char s[31],str[31];
for(;;)
{
printf("Enter a string :");scanf("%s",&s);
if(strlen(s)>30)
{printf("The string too large!The End.\n");break;}
printf("Old string:%s\n",s);
fun(s,str);
printf("New string:%s\n",str);
}
}
void fun(char s[],char str[])
{
int k,p;
p=strlen(s);str[p]='\0';
for(k=0;k<p;k++)str[p-k-1]=s[k];
}

把红色的改为:void fun(char s[],char str[]); 即可
tianmo2010 2011-08-20
  • 打赏
  • 举报
回复
# include <stdio.h>
# include <string.h>
void fun();//声明函数 void main()
{
char s[31],str[31];
for(;;)
{
printf("Enter a string :");scanf("%s",&s);
if(strlen(s)>30)
{printf("The string too large!The End.\n");break;}
printf("Old string:%s\n",s);
fun(s,str);
printf("New string:%s\n",str);
}
}
void fun(char s[],char str[])//函数的定义 {
int k,p;
p=strlen(s);str[p]='\0';
for(k=0;k<p;k++)str[p-k-1]=s[k];
}

函数的声明和定义不一致,就报错了。
CJacky++ 2011-08-20
  • 打赏
  • 举报
回复
void fun();
声明与定义的参数类型不一定,编译器认为fun不带参数。
deeplearning4j是基于java的深度学习库,当然,它有许多特点,但暂时还没学那么深入,所以就不做介绍了 需要学习dl4j,无从下手,就想着先看看官网的examples,于是,下载了examples程序,结果无法运行,总是出错,如下: 查看一周的错误,也没有成功,马上就要放弃了,结果今天在论坛一大牛指导下,终于成功跑起,下面,将心酸的环境配置过程记录如下,以备自己以后查阅,同时,也希望各种高手可以指点,毕竟,本人还是菜鸟一枚 1.安装JAVA运行环境 该部分,网上有许多教程,这里不再赘述,首先,就是安装一个JDK,然后,再安装一个自己喜欢的IED,这里,以eclispe为例 好了,java的运行环境配置好了,接下来,开始配置dl4j的运行环境,它的官网上给了好复杂的设置步骤,照着做看一些后,发现根本无法进行,结果发现,不需要全部设置完成,就可以运行它的例子了,所以,本人并没有按照官网的教程全部设置,只是设置到了可以运行官网的examples为止,可能存在隐患吧,但本人能力有限,实在无从下手,还期待高手指定 2.按照Maven 按照教程安装Maven,该教程讲述非常详细 (1)下载Maven3,3,3,以win7 64位为例 下载地址:https://maven.apache.org/download.cgi (2)将Maven解压到某个文件夹中,这里以“C:\Program Files\apache-maven-3.3.3”为例 (3)配置环境变量:将maven中的bin的路径添加到system variables的PATH中 (4)测试maven是否安装成功 在命令行中输入mvn -version 如果如下下图所示结果,证明配置正确 3. 下载dl4j的examples,网址为: https://github.com/deeplearning4j/dl4j-0.4-examples 4.打开eclipse,导入刚刚下载的dl4j的examples,具体地: 打开eclipse后->File->import->Maven Existing Maven Projects,在Root Directory中选择examples的文件夹 然后,Finish 这样,examples被成功导入 当然,由于Maven会自动导入程序所需的jar文件(在配置文件pom.xml中所提及),所以,会花费一些时间自动下载这些文件 点击运行,出现如下错误: 这个问题困扰了本人一周,终于解决,是因为系统缺少dll文件所致 5. 下载dll文件,地址为https://www.dropbox.com/s/6p8yn3fcf230rxy/ND4J_Win64_OpenBLAS-v0.2.14.zip?dl=1 下载后,将该文件随意放入一个文件夹中,这里以“C:/BLAS”为例 将所有下载得到的dll文件放入该文件夹,并且,将该路径添加至环境变量Path中 6.此时,再运行刚刚的examples,发现程序终于可以正常运行了!

69,371

社区成员

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

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