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

实验八 指针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);elseprintf(" %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.lryc.cn/news/512740.html

相关文章:

  • 1 数据库(下):多表设计 、多表查询 + SQL中的with查询语法(MySQL8.0以后版本才支持这种新语法)+ 数据库优化(索引优化)
  • 什么是.net framework,什么是.net core,什么是.net5~8,版本对应关系
  • vulhub-wordpress靶场
  • 安装与配置
  • 斗鱼Android面试题及参考答案
  • Could not install Gradle distribution from 的解决办法
  • 基于 SensitiveWordBs 实现敏感词过滤功能
  • 网络安全威胁2024年中报告
  • 批次特征组杂记
  • 【HarmonyOS】解决自定义弹框和键盘之间安全距离的问题
  • 如何在LabVIEW中更好地使用ActiveX控件?
  • 【视觉SLAM:四、相机与图像】
  • 如何利用无线路由器实现水泵房远程监测管理
  • 使用ArcGIS Pro自带的Notebook计算多个遥感指数
  • 宝塔-firefox(Docker应用)-构建自己的Web浏览器
  • OpenCV-Python实战(8)——图像变换
  • 存储进阶笔记(二):Linux 存储栈:从 Device Mapper、LVM 到文件系统(2024)
  • Linux(Centos 7.6)基础命令/常用命令说明
  • 超详细!一文搞定PID!嵌入式STM32-PID位置环和速度环
  • 【Goland】怎么执行 go mod download
  • 服务器主机测试网络
  • 【JMeter详解】
  • Maven Wrapper 报错“未找到有效的 Maven 安装”
  • 如何通过 360 驱动大师检查自己电脑上的显卡信息
  • C++并发:线程管控
  • C++ 设计模式:策略模式(Strategy Pattern)
  • SpringBoot(Ⅱ-2)——,SpringBoot版本控制,自动装配原理补充(源码),自动导包原理补充(源码),run方法
  • 爬虫的工作原理
  • 你了解DNS吗?
  • 利用JavaScript实现顺序九宫格抽奖