标题:关于指针和数组的问题。
取消只看楼主
fengyinxqy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2020-5-2
结帖率:92.31%
已结贴  问题点数:10 回复次数:3 
关于指针和数组的问题。
编写函数 void multiply Array(int *a,int m),其功能是将int型数组中的每个元素都乘以m,结果仍然保存在原数组中要求在主函数中初始化原始数组,调用
 multiply Array()函数后,在主函数中输出处理后的结果。
编写程序,实现如下函数调用。函数 getdata 的功能是从键盘输入数据,函数reverse的功能是将数据逆序存放,函数showdata的功能是输出数据。3个函数的定义形式及主函数的调用形式如下:
void getdata (int *a, int num);
 void reverse(int *a, int num);
 void showdata(int *a,int num);
 void main ()
{
 int a[10];
 getdata(a,10);
 reverse(a,10);
 showdata(a,10);
}
搜索更多相关主题的帖子: int 数组 void 调用 函数 
2020-05-04 14:22
fengyinxqy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2020-5-2
得分:0 
回复 2楼 lin5161678

程序代码:
#include <stdio.h>
void fun(int *p, int m)
{
    int a[5]={1,2,3,4,5};
    *p=&a[5];
    a[5]=a[5]*m;
}
int main()
{ 
    int a[5]={1,2,3,4,5},m, i;
    int *p=&a[5];
    scanf("%d",&m);
    fun(*p,m);
    printf("The result:\n");
    for (i = 0; i <5; i++)
    {
        printf("%4d",a[5]);
    }
    return 0;
}

2020-05-04 15:35
fengyinxqy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2020-5-2
得分:0 
回复 3楼 lin5161678
对于这个,我看了书,也查了百度,还是搞不懂当指针作为参数的时候,和一维数组要怎么使用。求指教!
2020-05-04 15:50
fengyinxqy
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2020-5-2
得分:0 
对于上面两个题目,经过一天的学习和写下来,已经得到解决,在此谢谢lin5161678大哥的帮助。
下面是代码:
程序代码:
#include <stdio.h>
#define SIZE 10
int main(void)
{
    int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 初始化数组

    multiplyArray(array, 2); // 调用函数 把数组中的每个元素都乘以2

    for (int i = 0; i < SIZE; i++) // 打印数组中的内容
        printf("%d\t", array[i]);

    return 0;
}
void multiplyArray(int *a, int m)
{
    for (int i = 0; i < SIZE; i++)
        a[i] *= m; // 这里用的是数组形式 也可以写作指针形式
}                   // *(a + i) *= m;


程序代码:
#include <stdio.h>
void getdata(int *a, int num);  //声明输入函数
void reverse(int *a, int num);  //声明逆序函数
void showdata(int *a, int num); //声明输出函数
void main()
{
    int a[10];                  //数组初始化
    getdata(a, 10);             //函数调用
    reverse(a, 10);             //函数调用
    showdata(a, 10);            //函数调用
    return 0;
}
void getdata(int *a, int num)
{
    for (int i = 0; i < 10; i++)        //输入10个数字
        scanf("%d", &a[i]);
}
void reverse(int *a, int num)
{
    int b[10]; //i表示元素个数
    for (int i = num - 1, j = 0; i >= 0; i--, j++)      //倒序输出数组
        b[i] = a[j];
    for (int i = 0; i < 10; i++)
    {
        a[i] = b[i];
    }
}
void showdata(int *a, int num)
{
    for (int i = 0; i < 10; i++)                //输出倒序后的数组
    {
        printf("%2d", a[i]);
    }
}
2020-05-05 15:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501419-1-1.html




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

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