当自定义一个函数时,如何确定函数的形参?
3个回答
展开全部
楼主的程序思想很明确,但是函数调用上差火候。
首先,你的被调用函数内的实参应该是输入的字符串,在你的被调用函数里已有输出语句,并且无返回值。
程序已帮你修改,已经过调试,附有说明,还有不懂可以HI我:
#include<iostream>
#include<string>
using namespace std;
int main()
{
void count(char word[20]);//函数声明,实参为被输入字符串(这里不知到楼主学过指针没,实际调用函数时,给的是字符串的首地址)
char word[20];
gets(word);
count(word);//这里word其实就是个指向word[20]数组中第一个数组元素地址的指针,数组、字符串之类的作为实参时,给的是首地址
return 0;
}
void count(char word[20])
{
int i,m=0,k=0,n=0,j=0;//定义统计变量
for(i=0;i<20&&word[i]!='\0';i++)//依次检测,进行字符统计
{
if(word[i]>='A'&&word[i]<='Z')
m++;
else if(word[i]>='a'&&word[i]<='z')
n++;
else if (word[i]>='0'&&word[i]<='9')
k++;
else if(word[i]==' ')
j++;
}
cout<<m<<","<<n<<","<<k<<","<<j<<endl;
}
首先,你的被调用函数内的实参应该是输入的字符串,在你的被调用函数里已有输出语句,并且无返回值。
程序已帮你修改,已经过调试,附有说明,还有不懂可以HI我:
#include<iostream>
#include<string>
using namespace std;
int main()
{
void count(char word[20]);//函数声明,实参为被输入字符串(这里不知到楼主学过指针没,实际调用函数时,给的是字符串的首地址)
char word[20];
gets(word);
count(word);//这里word其实就是个指向word[20]数组中第一个数组元素地址的指针,数组、字符串之类的作为实参时,给的是首地址
return 0;
}
void count(char word[20])
{
int i,m=0,k=0,n=0,j=0;//定义统计变量
for(i=0;i<20&&word[i]!='\0';i++)//依次检测,进行字符统计
{
if(word[i]>='A'&&word[i]<='Z')
m++;
else if(word[i]>='a'&&word[i]<='z')
n++;
else if (word[i]>='0'&&word[i]<='9')
k++;
else if(word[i]==' ')
j++;
}
cout<<m<<","<<n<<","<<k<<","<<j<<endl;
}
展开全部
这要看你设计这个函数是干嘛的了!
一般来说,这种数组是按值传值的,它在函数改变了,但一出了这个函数数组的还是没变的,所以如果你需要一个改变后的值,就需要返回一个值了!!
如果你是用指针的话,就可以不用了!不过也要看你设计这个函数的目的的哦!!!
一般来说,这种数组是按值传值的,它在函数改变了,但一出了这个函数数组的还是没变的,所以如果你需要一个改变后的值,就需要返回一个值了!!
如果你是用指针的话,就可以不用了!不过也要看你设计这个函数的目的的哦!!!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看需求而定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询