| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:谁来给俺讲讲这个程序 越详细越好啊
只看楼主 加入收藏
独孤求败1989
Rank: 2
等 级:论坛游民
帖 子:41
专家分:36
注 册:2009-11-8
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:6 
谁来给俺讲讲这个程序 越详细越好啊
#include<stdio.h>
#define M
void  arrout(int  *,int);
int   arrin(int  *);
main()
{int  s[M],k;
  k=arrin(s);
 arrout(s,k);
}
arrin(int  *a)
{int  i,x;
 i=0;
scanf(“%d”,&x);
while(x>=0)
{ *(a+i)=x;
  i++;
  scanf(“%d”,&x);
}
return   i;
}
void  arrout(int  *a, int  n)
{int   i;
  for  (i=0;i<n;i++)
       {printf(“%4d”,*(a+i));
          if ((i+1)%5==0)  printf(“\n”);}
  }
我是菜鸟一个,刚学习c语言,函数说明语句的位置,有时候在main()后,有时候在它的前面,怎么正确使用啊??还有本程序通过return i;不输入数据的个数给了k对么???
搜索更多相关主题的帖子: c语言 void include return 
2010-03-13 15:03
hackerjiang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:3
帖 子:780
专家分:111
注 册:2007-4-27
收藏
得分:5 
这么说把,主函数也是一个函数,与你自己定义的函数是平等的,只是程序先从主函数开始运行。

变量遵循先定义后使用的原则,在一个函数内定义的变量,只允许该函数自己使用,在函数结束之后变量的内存空间就会立即释放。

如果你想其他的函数也能实用这个变量,有两种方式:

方式一:不把变量定义在任何函数里面,也就是说该变量何以被任意该源文件内的函数所引用。

方式二:利用函数变量的传递,比如这个程序的arrout(s,k);,s 和 k 分别对应void  arrout(int  *a, int  n)里面的 *a 与 n 。

你可能会问,什么是源文件这个概念。

你写的一个程序,如果比较大,可能会由很多代码组成,为了方便,一个程序的代码有可能储存在多个C文件中。

一个C文件叫做源文件。如果你想设定一个能让整个程序所有源文件都能实用的变量,你可以把他定义为全局变量。以后会学,不要急。

[ 本帖最后由 hackerjiang 于 2010-3-13 19:16 编辑 ]

(づ ̄ 3 ̄)づ
2010-03-13 15:38
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:2 
不要好高;
貌似你知道的甚少,所以从基础 从输入输出 从变量 点滴学起!
2010-03-13 16:17
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
收藏
得分:5 
变量遵循先定义后使用的原则,在一个函数内定义的变量,只运行该函数自己实用,在函数结束之后变量的内存空间就会立即释放。

如果你想其他的函数也能实用这个变量,有两种方式:

方式一:不把变量定义在任何函数里面,也就是说该变量何以被任意该源文件内的函数所引用。

方式二:利用函数变量的传递,比如这个程序的arrout(s,k);,s 和 k 分别对应void  arrout(int  *a, int  n)里面的 *a 与 n 。

你可能会问,什么是源文件这个概念。

你写的一个程序,如果比较大,可能会由很多代码组成,为了方便,一个程序的代码有可能储存在多个C文件中。
2010-03-13 16:18
jrkaho
Rank: 2
等 级:论坛游民
帖 子:24
专家分:55
注 册:2010-3-13
收藏
得分:6 
arrin(int  *a)
{int  i,x;
i=0;
scanf(“%d”,&x);
while(x>=0)
{ *(a+i)=x;
  i++;
  scanf(“%d”,&x);
}
return   i;
}

arrin(int *a);这个函数的作用是从屏幕中读取正数,然后放入数组S[M]中,并统计正数的个数将其存入变量i中。一旦输入一个负数就终止
将i的值返回给变量k。
然后再调用arrout(int  *a, int  n);函数
void  arrout(int  *a, int  n)
{int   i;
  for  (i=0;i<n;i++)
       {printf(“%4d”,*(a+i));
          if ((i+1)%5==0)  printf(“\n”);}
  }
这个函数的作用是将输入的正数按照每行4个这种格式输出到屏幕上。
2010-03-13 16:36
jrkaho
Rank: 2
等 级:论坛游民
帖 子:24
专家分:55
注 册:2010-3-13
收藏
得分:2 
函数说明语句的位置,有时候在main()后,有时候在它的前面,怎么正确使用啊??

函数如果是写在main()之前就不需要声明,如果是像你这个程序一样写在main()之后,就需要在开头声明下
2010-03-13 16:38
hackerjiang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:3
帖 子:780
专家分:111
注 册:2007-4-27
收藏
得分:0 
回复 4楼 zhuyunshen
靠~你直接复制我的?!有没有搞错~

(づ ̄ 3 ̄)づ
2010-03-13 19:14
快速回复:谁来给俺讲讲这个程序 越详细越好啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014098 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved