重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你要的是
成都创新互联是一家以网站建设、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为成都主动防护网等众行业中小客户提供优质的互联网建站和软件开发服务。
编写自定义函数统计一个长度为10的整数数组中正数、负数和零的个数吧?
?
//int *num为你要统计的整数数组。
//int n 为数组长度,你的例题是10,这函数可用于任意int长度数组
//int *result 为保存统计结果的数组,你的例可定义成这样int result[3]
//因为你只要统计三种情况,更多种的话你只要改动3就行
//
void tj(int *num,int n,int *result){
int i;
for(i=0;in;i++){
if(num[i]0)
result[0]++;//保存正数个数
else if(num[i]0)
result[2]++;//保存负数个数
else
result[1]++;//保存0的个数
}
例:
#define N 10
#include stdio.h
void tj(int *num,int n,int *result){
int i;
for(i=0;in;i++){
if(num[i]0)
result[0]++;/* 保存正数个数 */
else if(num[i]0)
result[2]++;/* 保存负数个数 */
else
result[1]++;/* 保存0的个数 */
}
}
main(){
int yournum[N]={2,5,0,-12,23,-24,0,45,-18,33};
int myresult[3]={0};
tj(yournum,N,myresult);
printf("\n0: %d",myresult[0]);
printf("\n=0: %d",myresult[1]);
printf("\n0: %d",myresult[2]);
getchar();
}
1.
#includestdio.h
#includestring.h
void main()
{
char a[20][20],c;
int i,j,m=0;
for(i=0;i20;i++)
for(j=0;j20;j++)
a[i][j]='\0';
j = 0;
c=getchar();//先获取第一个字符
for(i=0;c!='\n';)
{
if(c != 32)
{
a[i][j] = c;
j++;//控制列存储
}
else
{
a[i][j] = '\0';//每一行的最后一个字符上字符串结束标志
i++;//控制行存储
j = 0;//重新开始一行了,所以列号要重新计数
}
c=getchar();
}
for(i=0;i19;i++)
if(strlen(a[i])strlen(a[i+1]))
m=i+1;
printf("%s\n",a[m]);
}
2.
#includestdio.h
void main()
{
int num[4][4],m,i,j;
printf("请输入数组:\n");
for(i=0;i4;i++)
for(j=0;j4;j++)
scanf("%d",num[i][j]);
for(i=0;i4;i++)
for(j=0;ji;j++)
{
m=num[i][j];
num[i][j]=num[j][i];
num[j][i]=m;
}
printf("重排后的结果为:\n");
for(i=0;i4;i++)
{
for(j=0;j4;j++)
printf("%d ",num[i][j]);
printf("\n");
}
}
终于敲完了,累死我了,都是利用的数组以前的知识,看一看吧
……分有点少。。。懒得打了。
你用全局变量存数组 然后在函数中把数组中的每一个数分别判断
比如 n个数
for(i=1;i=n;i++)
if(a[i]==0) s1++;
else
if(a[i]0) s2++;
else s3++;
就像这样 当然 开始要用for循环读入
for(i=1;i=n;i++) scanf("%d",a[i]);
其它的应该不用我说了吧?
莫非这点小问题就打击到你了, 你漫漫长征第一步都还没开始, 以后的数据库 数据结构 操作系统 计算机网络 每一门课程都是很难的
C语言的函数其实很简单 你就把他当成一个功能模块就行了, 这个东西理解清楚了其实很简单的, 比如说你想请客吃饭, 这是你的最后功能,中间你可能叫别人通知另外的人, 那么你叫别人通知的这个过程就可以当成一个函数了, 因为你叫他帮你做一件事, 但可能不知道他是怎么做的, 你只关注入口和出口, 即你叫他通知和他是否通知到.
既然是叫别人帮忙做事的话, 你可能需要传一些东西给别人这就是参数, 别人做完后, 可能要返回给你一个东西, 这就是返回值, 但这不是必须的.
C语言程序全都是函数, 他就是一个函数的集合, 在main函数中调用其他的函数, 所以说C语言里全是函数, 锄此之外再没别的东西了
#includeStdio.h
int fact(int i)
{
if(i==1||i==0)
return 1;
else
return i*fact(i-1);
}
int main()
{
int n,m;
double count;
printf("请输入m的数值:");
scanf("%d",m);
printf("请输入n的数值:");
scanf("%d",n);
if(n=0m=0n=m)
{
count=((fact(n)*1.0)/(fact(n-m)*1.0*fact(m)));
printf("%lf\n",count);
}
else
{
printf("输入有误");
}
return 0;
}
fact()函数是计算N!函数!
我个人认为函数这部分的重点给你说下哦:
1.函数的返回值类型,也就是你函数return的内容的类型,注意如果有多种结束函数途径的话一定要有多个return,譬如说
int fun(int x)
{
if(x0)
return 0;
else
return 1;
}
2.函数形参的传递关系,有的可以改变值,有的不可以改变值,也是给你个例子:
void fun1(int x,int *y,int z)
{
x=1;
*y=1;
z=1;
}
如果主函数有变量int a=b=c=2;fun(a,b,c);的话,那么b和c的值会改变,而a的值不会改变,那是因为:
a并不对变量a所占用内存空间的内容进行操作。
b是把b变量的内存空间地址传递进去了,fun函数直接对b变量所在内存空间进行操作,所以b会改变。
至于c,你暂时不用知道,因为形参int c表示的是一个引用,是c++里面会涉及的,你现在用c所以暂时只要知道有这么种方法就可以了。
3.就是注意函数中变量的存活期,这个说起来有点麻烦,你看下书上关于局部变量和全局变量那部分的内容吧,那个说的比较详细。