当前位置: 首页 > article >正文

实验八 指针2

7-1 利用指针返回多个函数值

分数 30

全屏浏览

切换布局

作者 陈晓梅

单位 广东外语外贸大学

读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

输入格式:

输入有两行:
第一行是n值;
第二行是n个数。

输出格式:

输出最大值和最小值。

输入样例:

在这里给出一组输入。例如:

5
8 9 12 0 3

输出样例:

在这里给出相应的输出。例如:

max = 12
min = 0
#include<stdio.h>
int *max_min(int *p,int n)
{
    int i;
    static int a[2];
    *a=*(a+1)=*p;
    for(i=0;i<n;i++)
    {
        if(*(p+i)>*a)
        {
            *a=*(p+i);
        }
        if(*(p+i)<*(a+1))
        {
            *(a+1)=*(p+i);
        }
    }
    return a;
}
int main()
{
    int n,*p,i;
    scanf("%d",&n);
    int a[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    int *m = max_min(a,n);
    printf("max = %d\nmin = %d\n",*m,*(m+1));
    return 0;
}

7-2 逆置一维数组

分数 10

全屏浏览

切换布局

作者 usx程序设计类课程组

单位 绍兴文理学院

编写程序,以指针的方式,就地逆置一维数组。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据先输入数据个数n,然后输入n个整数。

输出格式:

对于每组测试,在一行上输出逆置之后的结果。数据之间以一个空格分隔。

输入样例:

2
4 1 2 5 3
5 4 3 5 1 2

输出样例:

3 5 2 1
2 1 5 3 4
#include<stdio.h>
int f(int*a,int n)
{
    int t=0;
    for(int i=0;i<n/2;i++)
    {
        t=*(a+i);
        *(a+i)=*(a+n-i-1);
        *(a+n-i-1)=t;
    }
    for(int i=0;i<n;i++)
    {
        if(i==0)
            printf("%d",*a);
        else
            printf(" %d",*(a+i));
    }
}
int main()
{
    int T,n;
    scanf("%d",&T);
    while(T>0)
    {
        scanf("%d",&n);
        int a[n];
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        f(a,n);
        printf("\n");
        T--;
    }
    return 0;
}

7-3 两数的互换

分数 30

全屏浏览

切换布局

作者 王群芳

单位 合肥师范学院

从键盘任意输入两个整数,用指针作函数参数,编程实现将其交换后再重新输出。

函数接口:

void swap(int *x, int *y)

输入格式:

从键盘输入两个整数。

输出格式:

按输出样例的形式输出交换后的两个整数。

输入样例:

11 22

输出样例:

After swap:22,11
#include<stdio.h>
void swap(int *x,int *y)
{
    printf("After swap:%d,%d",*y,*x);
}
int main()
{
    int x,y;
    scanf("%d %d",&x,&y);
    swap(&x,&y);
    return 0;
}

7-4 sdut-C语言实验-虎子的难题

分数 10

全屏浏览

切换布局

作者 马新娟

单位 山东理工大学

稷下英才实验班有个同学叫虎子,有一天虎子刷到了一道编程题:给M(M<=100)组数据,每组数据有N个正整数(N<=100),要求把每组的N个数按升序排成一行。虎子觉得应该用指针和函数实现比较高效,但总是调试不出来,你能帮帮他吗?

输入格式:

输入包括M+1行,第一行是两个正整数M、N;M表示总共多少组数据,下面M行每行包含N个正整数。(输入数据之间会用空格隔开)

输出格式:

输出包括M行,每行分别对应输入中M组数据的升序序列,数与数之间用一个空格隔开。

输入样例:

2 3
1 3 2
4 2 6

输出样例:

在这里给出相应的输出。例如:

1 2 3
2 4 6
#include<stdio.h>
void f(int *q,int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(*(q+i)>=*(q+j))
            {
                t=*(q+i);
                *(q+i)=*(q+j);
                *(q+j)=t;
            }
        }
    }
}
int main()
{
    int m,n,i,j;
    scanf("%d %d",&m,&n);
    int nums[m][n];
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&nums[i][j]);
        }
    }
    for(i=0;i<m;i++)
    {
        f(nums[i],n);
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            if(j==0)
            {
                printf("%d",nums[i][j]);
            }
            else
            {
                printf(" %d",nums[i][j]);
            }
        }
        printf("\n");
    }
    return 0;
}

http://www.kler.cn/a/460179.html

相关文章:

  • nature reviews genetics | 需要更多的针对不同种族的癌症基因组图谱研究,促进精准治疗和维护治疗公平权益
  • [极客大挑战 2019]Http 1
  • MySQL 锁那些事
  • 面试经典问题 —— 链表之返回倒数第k个节点(经典的双指针问题)
  • 【机器学习 | 数据挖掘】时间序列算法
  • 【信息系统项目管理师】第14章:项目沟通管理过程详解
  • 常见cms获取Shell漏洞(Wordpress、dedecms、ASPCMS、PhpMyadmin)
  • 深入了解 Zookeeper:原理与应用(选举篇)
  • Supermap iClient Webgl 粒子特效案例-消防场景
  • C++并发:线程管控
  • Android 部分操作(待补充
  • 活动预告 | Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁
  • 代理arp(proxy arp)原理 及配置
  • 每日算法一练:剑指offer——贪心算法与找规律
  • NestJS 认证与授权:JWT、OAuth 和 RBAC 实现
  • 【C++】B2064 斐波那契数列
  • 智能家居体验大变革 博联 AI 方案让智能不再繁琐
  • 两台ubuntu的ECS机器共享一个存储
  • 【C++】:volatile 关键字详解
  • Git Flow 工作流:保障修改不破坏主功能的完整指南20241230
  • BGP路由协议的next-hop属性
  • C++ 【回调函数】详解与代码解读
  • 自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator
  • Vscode左大括号不另起一行、注释自动换行
  • 1、Jmeter、jdk下载与安装
  • 磁珠选型规范