C语言,将数组a(10个元素)的数据逆序复制到数组b中,并输出数组b的值(下面是主函数,要求写一个被调函数)

供稿:hz-xin.com     日期:2025-01-15
题目是:用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。

#include
main()
{
int a[5],b[5];
int *p;
int i;
p=a;
for(i=0;i<5;i++){
scanf("%4d",p++);
}
for(i=0;i<5;i++){
p--;
b[i]=*p;

}
for(i=0;i<5;i++){
printf("%4d",b[i]);
}
}

其实不要把指针想的太过复杂了,这只会增加你对学习它的恐惧感。

说的直白点:知道什么叫地址,什么叫值吧?指针本身也就是一个变量,它同int a = 10的a是一样的意思。指针的值是一个地址,也就相当于10了。知道了指针只要对其用取值运算符*就可以了。(当然这只是对于一级指针而言了,而多级指针就是指针的值仍然是一个地址,就这样理解)

对于你的问题,
int a[5], b[5]; // 首先定义两个整型的数组
int *pa = a, *pb = b; // 定义两个指针分别指向这两个数组,其实数组名本身就是这个数组的指针,因此这样定义后,pa[0] 和a[0]都是指取第1个元素的值

for(i = 0; i < 5; ++i)
{
scanf("%d", pa + i);
*( pb + 4 - i )= *(pa + i);
}
for(i = 0; i < 5; ++i) printf("%d ", *(pb + i));

#include<stdio.h>//加上头文件

//int  main( )拼写错误

void cun(int *a,int *b)
{
int i;
for(i=0;i<10;i++)
{
*(b+9-i)=*(a+i);
}

}


int main()
{

    int a[10],b[10],*pa,*pb;

    int i;

    pa=a;

    pb=b;

    for (i=0;i<=9;i++)

    scanf("%d",&a[i]);

     cun(pa,pb);

     for (i=0;i<=9;i++)

      { if(i==9)

      printf("%d",b[i]);

      else printf("%d ",b[i]);

      }
}


#include <stdio.h>
/*********函数*****************/ 
int cun(int *pa,int *pb)
{
    for(int i=0;i<10;i++)
    {
            pb[i]=pa[10-i-1];
    }
}
/*********函数*****************/ 
int  main( )
{
    int a[10],b[10],*pa,*pb;
    int i;
    pa=a;
    pb=b;
    for (i=0;i<=9;i++)
    scanf("%d",&a[i]);
     cun(pa,pb);
     for (i=0;i<=9;i++)
      { if(i==9)
      printf("%d",b[i]);
      else printf("%d ",b[i]);
      }
}


c语言编程:数组a包含10个元素,键盘输入,然后对数组a倒置(即数值前后交 ...
include "stdio.h"int main(){ int a[10]={0};int i,tmp;printf("请输入10个整数:");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("数组a倒置后输出:\\n");for(i=0;i<5;i++){ tmp=a[i];a[i]=a[9-i];a[9-i]=tmp;} for(i=0;i<10;i++)printf("%d ",a[...

在C语言中数组a包含10个元素,那么a的值是?
并为这10个元素分配内存空间。数组元素的一般形式为:数组名[下标]。其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。总之数值在0到9之间,超过此范围则有误。

用c语言实现数组a中存放了10个整数,调用函数将数组a中的数重新排序,排...
include<stdio.h> include<stdlib.h> void sort(int a[],int n){ int t;for(int i=0;i<n-1;++i)for(int j=i+1;j<n;j++)if(a[i]%2){ t=a[i];a[i]=a[j];a[j]=t;} } int main(){ int a[10];for(int j=0;j<10;j++){ a[j]=rand()%101;printf("%d ",...

假设有一个a数组,整形有10个元素.要输出各元素的值.求解VC6++ scanf输...
include <stdio.h> void main(){int a[10];int i;for(i=0;i<10;i++)scanf("%d",&a[i]); \/\/a[i]前面加&!printf("\\n"); \/\/是\\n而不是\/n,后面同理!for(i=0;i<10;i++)printf("%d ",a[i]);printf("\\n");} ...

C语言编程输入10个整数存入数组a中然后按从打到小的顺序排序并输
编写一个C语言程序,用于输入10个整数存入数组a中,然后按照从大到小的顺序排序并输出。程序实现步骤如下:首先,引入必要的头文件<stdio.h>。接着,使用int main()函数作为程序的主入口。在主函数内部,定义一个整数型数组a[10]和两个整数变量i和j。使用for循环,从0到9遍历数组,输入每个元素的值...

c语言求救!!!定义一个包括10个元素的整形数组,通过键盘输入10个数据存...
include<stdio.h> define N 10 \/\/定义数组元素个数 main(){ int a[N],i,max;printf("请输入%d个数组元素:\\n",N);scanf("%d",&a[0]);max=a[0];\/\/把第一个数值暂时记录为最大值 for(i=1;i<N;i++)\/\/把输入的数存入数组 { scanf("%d",&a[i]);if(a[i]>max)\/\/寻找最...

C语言数据统计程序,定义一个数组a存放10个整数,通过数组初始化方式
int main(){ int a[10]; int i,j; \/\/数组初始化 for(i=0;i<10;i++) { a[i]=i; } \/\/取偶数个数 for(i=0;i<10;i++) { if(a[i]%2==0) { j++; } } printf("偶数的个数为:[%d]\\n",j); } ...

C语言编程实现输入10个整数存放到数组a的a[1]到a[10]中,并输出其中的最...
include<stdio.h>int main (){ int i = 0,a[10] = {0}; int max = 0,min = 0,sum = 0; float pj = 0;; for(i = 0;i < 10;i ++) scanf("%d",a+i); max = min = a[0]; for(i = 1;i < 10;i ++) if(max < a[i]) max = a...

输入10个整数到数组A中,将数组各元素依次向后循环移动一个位置,移动...
include <stdio.h> include <conio.h> define N 10 \/*N为数组可能的最大值*\/ int main(void){ int a[N];int temp;int i;for(i = 0;i < N;i ++) \/*依次读入*\/ { scanf("%d", &a[i]);} temp = a[N - 1]; \/*先置出最后一项*\/ for(i= N - 2;i >= 0...

编写程序实现求一维数组(10个元素)的平均值并输出,要求使用指针实现...
include<stdio.h> int output(int *);void main(){ int a[10];for(int i=0;i<10;i++)scanf("%d",a[i]);int s;s=output(a);printf("sum=%d",s);} int output(int a[]){ int sum=0;for(int i=0;i<10;i++)sum+=a[i];return (sum);} ...