大一C语言问题?一维数组与指针函数?
#includestdio.h
成都创新互联专注于企业营销型网站建设、网站重做改版、乌审网站定制设计、自适应品牌网站建设、H5响应式网站、商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为乌审等各大城市提供网站开发制作服务。
void Input(int *a,int n)
{int i;
for(i=0;in;i++)
scanf("%d",a+i);
}
int Max(int *a,int n)
{int i,max=*a;
for(i=1;in;i++)
if(*(a+i)max)max=*(a+i);
return max;
}
int Min(int *a,int n)
{int i,min=*a;
for(i=1;in;i++)
if(*(a+i)min)min=*(a+i);
return min;
}
float Avg(int *a,int n)
{int i,s=0;
for(i=0;in;i++)
s+=*(a+i);
return (float)s/n;
}
int main()
{ int a[10];
Input(a,10);
printf("最低分=%d\n",Min(a,10));
printf("最高分=%d\n",Max(a,10));
printf("平均分=%.1f\n",Avg(a,10));
return 0;
}
C语言指针实现自定义函数求一维数组中的最大值和最小值
import java.util.Scanner;
public class MaxMin{
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
System.out.println("输入数组的长度:");
int count=scan.nextInt();
System.out.println("输出数组的"+count+"个数:");
int[]arr=new int[count];
for(int i=0;ilt;arr.length;i++){
arri=scan.nextInt();
}
System.out.println("输出数组:");
for(int i=0;ilt;arr.length;i++){
System.out.print(arri+"\t");
}
int max=Integer.MIN_VALUE;
int min=Integer.MAX_VALUE;
for(int i=0;ilt;arr.length;i++){
if(arrigt;max){//求出最大值
max=arri;
}
if(arrilt;min){//求出最小值
min=arri;
}
}
System.out.println("\n最大值:"+max);
System.out.println("最小值:"+min);
}
}
扩展资料:
system函数用法:int system(char*command);
system函数已经被收录在标准c库中,可以直接调用
程序例:
#includelt;stdlib.hgt;
#includelt;stdio.hgt;
int main(void)
{
printf("About to spawn and run a DOS command\n");
system("dir");
return 0;
}
又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用system("color 0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色
(注意:Microsoft Visual C++6.0支持system)
用C语言如何使函数返回值为指向一维数组的指针?
子函数中定义的一般指针变量,在子函数结束之后会被自动释放,如果返回这种局部指针变量,调用者一般是不能正确读到指针地址中的数据的。
因此,如果想在主函数中输出自定义函数中定义的数组,就要在自定义函数中把数组定义为静态数组,然后返回数组名即可。
静态变量的生命周期是整个程序的生命期,从定义开始,直到程序结束,才会被释放。
参考代码:
#include stdio.h
char *get_str(void) //返回值类型为字符指针
{
static char str[100]={0};//静态变量初始化,只有在定义时这次完成,且初始化只执行一次。
sprintf(str,"hello world");
return str ;
}
void main()
{
char *p;
p=get_str();
printf("%s\n", p );
}
C语言关于指向一维数组的指针
你的2个程序是不同的。关键知识是: 普通指针 和 数组指针 的 不同点。
下面是简单的说明。
int *p; 是普通的指针,指向一个地址。
p=a; 让它指向2维数组的始地址。由于数组是按行排列,所以下标[i,j] 的 元素 a[i][j] 排在 i*4+j 位,即: p[i*4+j]
printf("a[%d][%d]=%d\n",i,j, (p[i*4+j])); // 就是 输出 a[i][j]。
=========
int (*p)[4]; 这是数组指针,用于指向4个元素一行的数组。
p= a[0]; 让 它指向 数组 的开始地址。
程序中可以用 p[i][j] 代替 a[i][j] 使用。
printf("a[%d][%d]=%d\n",i,j, p[i][j]); // 就是 输出 a[i][j]。
文章名称:c语言的一维数组指针函数 一维数组的指针表达方式
URL地址:http://scyingshan.cn/article/dohejjc.html