我是靠谱客的博主 安静咖啡,最近开发中收集的这篇文章主要介绍对于p255.c的讨论-用功能函数实现找数据和定位数据对于p255.c的讨论题目描述解题代码,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 对于p255.c的讨论
- 题目描述
- 核心条件:
- 原代码
- 解题代码
- 解题分析
对于p255.c的讨论
题目描述
程序P255.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序(在指定的位置添加代码或将__________换成代码)——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。
程序的功能是:从键盘分别读入5个数到arrA中、8个数至arrB中,再读入一个数num(这些数均≥0),然后分别调用自定义函数在数组arrA和arrB中查找大于num的最小数(不考虑有多个最小值的情况)所在位置的下标、再输出该下标。
核心条件:
- 处理一个数组,找出位置
- 这个位置上的数的特点:大于num,且最小
- 返回位置,即索引值
原代码
#include <stdio.h>
/* userCode(<70字符): 自定义函数之原型声明 */
______________________________
int main(void)
{
int arrA[5], arrB[8], num, minPosA, minPosB;
printf("请输入5个数:");
scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
printf("请输入8个数:");
scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);
printf("请再输入一个数:");
scanf("%d", &num);
______________________________ /* userCode(<50字符): 调用函数查找在arrA中大于num的最小数所在的下标 */
if (-1 == minPosA)
{
printf("narrA: not Find!");
}
else
{
printf("nminPos(arrA) = %d", minPosA);
}
______________________________ /* userCode(<50字符): 调用函数查找在arrB中大于num的最小数所在的下标 */
if (-1 == minPosB)
{
printf("narrB: not Find!n");
}
else
{
printf("nminPos(arrB) = %dn", minPosB);
}
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
解题代码
#include <stdio.h>
/* userCode(<70字符): 自定义函数之原型声明 */
int getPos(int *arr, int n, int num);
int main(void)
{
int arrA[5], arrB[8], num, minPosA, minPosB;
printf("请输入5个数:");
scanf("%d%d%d%d%d", &arrA[0], &arrA[1], &arrA[2], &arrA[3], &arrA[4]);
printf("请输入8个数:");
scanf("%d%d%d%d%d%d%d%d", &arrB[0], &arrB[1], &arrB[2], &arrB[3], &arrB[4], &arrB[5], &arrB[6], &arrB[7]);
printf("请再输入一个数:");
scanf("%d", &num);
minPosA = getPos(arrA, 5, num); /* userCode(<50字符): 调用函数查找在arrA中大于num的最小数所在的下标 */
if (-1 == minPosA)
{
printf("narrA: not Find!");
}
else
{
printf("nminPos(arrA) = %d", minPosA);
}
minPosB = getPos(arrB, 8, num); /* userCode(<50字符): 调用函数查找在arrB中大于num的最小数所在的下标 */
if (-1 == minPosB)
{
printf("narrB: not Find!n");
}
else
{
printf("nminPos(arrB) = %dn", minPosB);
}
return 0;
}
/* User Code Begin:考生在此后完成自定义函数的设计,行数不限 */
int getPos(int *arr, int n, int num)
{
int i = 0;
int tmp;
int pos = -1; // 位置,默认找不到,返回-1
// 第一个符合:大于num的数,作为最小的数
for (i = 0; i < n; i++)
{
if (arr[i] > num)
{
tmp = arr[i];
pos = i;
break;
}
}
// 接下来看还有没有更小的符合大于num的数
for (; i < n; i++)
{
if (arr[i] > num && arr[i] < tmp)
{
tmp = arr[i];
pos = i;
}
}
return pos;
}
解题分析
- 输入数组,肯定会再传一个数据长度n
- 遍历数组,找符合条件的数据,记下相应的下标
- 由于有个最小的比较,先找一个符合条件的擂主,再打擂更新即可
- 功能函数,返回的就是这个下标
- 功能函数,入口包括 【数组,个数,num数】 三个即 可
最后
以上就是安静咖啡为你收集整理的对于p255.c的讨论-用功能函数实现找数据和定位数据对于p255.c的讨论题目描述解题代码的全部内容,希望文章能够帮你解决对于p255.c的讨论-用功能函数实现找数据和定位数据对于p255.c的讨论题目描述解题代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复