网站建设资讯

NEWS

网站建设资讯

c语言指针函数数组 c语言数组指针和指针数组

C语言函数用指针输入数组元素,对吗

如下提示供参考:

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的建华网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

int ddata[20] 是 scanfArr 函数内部定义的,是 局部变量,上面 arr = ddata,导致 scanf 输入的数组元素会保存到 局部变量 数组中,并无意义。

从问题描述,提供以下代码供参考:

#includestdio.h

void scanfArr(int *arr,int n)

{

int i;

printf("请输入5个数(以回车键结束):\n");

for(i=0; in; i++,arr++)

  scanf("%d",arr);

}

void main() 

{

int i, ddata[5];

scanfArr(ddata,5);

printf("输入的数组如下:\n");    

for(i=0;i5;i++)

{

printf("[%d] : %d\n",i, ddata[i]);

}

}

运行截图:

关于C语言指针 函数 数组的问题

/* 看样子你还没有入门呀。问题分析在注释中了。 */

// 分析: 依照提示 按部就班

#includestdio.h

#includestdlib.h

#define maxn 10

void swap(int *a, int *b) //② 定义一个交换指针值的过程(swap);

{

int *temp;

temp=(int *)malloc(sizeof(int *)); //这里的temp指针不需要分配空间。

temp=a; //temp的值在相应内存释放前被改变了,那么上一步申请的内存将成为僵尸内存。

a=b;

b=temp;

free(temp); //前面已经把a的值赋给temp了,这里实际是释放a所指的空间,而这里你是无法知道a是不是动态分配的内存,因此程序不能写成这样。

return ;

}

void print(int *A[] ) //③ 定义一个打印过程(print);

{

int i;

for(i=0;i=maxn-1;i++)

printf("%d\n",*A[i]); //A[i]是个指针,最好用 printf("0x%p\n", A[i]);

return ;

}

void fuzhi(int b[],int *a[] ) //④ 定义过程(int)将数组b的值赋给a数组各元素所指向的各存储单元。

{

int i;

for(i=0;i=maxn-1;i++)

{

*a[i]=b[i];

}

return ;

}

void pixu(int *a[])//⑤ 过程pixu用交换指针值的方式,按a数组所指向的存储单元内容值从小到大地调整各元素指针值,实现"指针"排序;

{

int i;

int j;

for(i=0;i=maxn-2;i++)

{

for(j=i+1;j=maxn-1;j++)

{

if(*a[j]*a[i])

swap(a[j],a[i]);

}

}

return ;

} //这段代码似乎达不到排序效果吧,排序一般用递归来做比较好。找个快速排序的源代码看看理解一下吧。

int main()

{

int *a[maxn];

int b[maxn];

int i;

for(i=0;i=maxn-1;i++)

b[i]=(maxn-1)-i;

fuzhi(b[maxn],*a[maxn]);

pixu(*a[maxn]);

print(*a[maxn]);

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语言指针函数数组 c语言数组指针和指针数组
本文网址:http://cdweb.net/article/docdjhh.html