首页 > 编程语言 >深圳大学-电信院-C程序设计实验-指针编程

深圳大学-电信院-C程序设计实验-指针编程

时间:2024-08-03 23:54:05浏览次数:18  
标签:函数 idx min int max 编程 str 深圳大学 程序设计

实验目的

一、了解并掌握使用指针进行编程的方法;
二、了解并掌握指针作为函数参数时函数的编写与调用方法。

实验要求

本次实验不要求提交正式实验报告,但要求实验完成后,将程序及程序的运行结果依次拷贝到一个word文档中,统一形成一个.doc文档后提交至Blackboard。文档名可用你的姓名+你的学号。

实验要求

本次实验要求定义2个函数,编写主函数调用这2个自定义函数进行验证。
(第一个函数)编写一函数
void Insert_char_to_string (char * dest_str, char * orig_str)
将源字符串orig_str中每隔一个字符插入一个字符’m’, 插入后形成的字符串存放于目的字符串dest _str中。(如源字符串为“ABCDEFG12345” ,则目的字符串应为“AmBmCmDmEmFmGm1m2m3m4m5”。
(第二个函数)编写一个函数 float FindMax(float a[], int m, int *n),找出一个大小为m的实型数组a中的最大数,以及最大数对应的下标,并将找出的最大数作为函数FindMax的返回值,最大数的下标通过指针变量n传给调用函数。
(第三个函数)编写一个函数 int FindMin(float a[], int m),找出一个大小为m的实型数组a中最小数的下标,并将其作为函数FindMin的返回值。
(主函数)编写主函数对你所编写的上述3个函数进行调用验证。主函数应包含如下功能:
1、定义两个字符数组、一个实型数组,一个用于存贮最大值的实型变量max和一个用于存贮最大值下标的变量a,如:
char DestString[100],OrigString[100];
float b[10],max;
int a,min_idx;
2、从键盘读入一个字符串存入字符数组OrigString中;调用函数Insert_char_to_string得到插入后的字符串,函数的两个输入参数为DestString,OrigString;将目的字符串显示到屏幕上。
3、从键盘读入10个数存入数组b中; 调用函数FindMax找到最大值和最大值的下标,函数的输入参数分别为b,10和&a,函数的返回值存入变量max中;将最大值和最大值的下标显示到屏幕上;调用FindMin找到最小数的下标,将其赋给变量min_idx,并将最小数和最小数的下标显示到屏幕上; 将数组b中的最大数和最小数交换,将交换后数组各元素的值显示到屏幕上。

注意:字符串要使用字符数组存贮。

实验代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Insert_char_to_string(char *dest_str, char *orig_str)
{
    int len = strlen(orig_str);
    int i,j = 0;
    for (i = 0; i < len; i++)
    {
        dest_str[j++] = orig_str[i];
        if (i != len - 1)
        {
            dest_str[j++] = 'm';
        }
    }
    dest_str[j] = '\0';
}
float FindMax(float a[], int m, int *n)
{
    int i;
    float max_num = a[0];
    *n = 0;
    for (i = 1; i < m; i++)
    {
        if (a[i] > max_num)
        {
            max_num = a[i];
            *n = i;
        }
    }
    return max_num;
}
int FindMin(float a[], int m)
{
    int min_idx = 0;
    int i;
    for (i = 1; i < m; i++)
    {
        if (a[i] < a[min_idx])
        {
            min_idx = i;
        }
    }
    return min_idx;
}
int main()
{
    char DestString[100], OrigString[100];
    float b[10], max;
    int a, min_idx;
    printf("请输入一个字符串:");
    gets(OrigString);
    Insert_char_to_string(DestString, OrigString);
    printf("插入后的字符串为:%s\n", DestString);
    printf("请在接下来输入10个数字,以空格分隔:\n");
    int j;
    for (j = 0; j < 10; j++)
    {
        scanf("%f", &b[j]);
    }
    max = FindMax(b, 10, &a);
    printf("数组b中的最大数为%f,其下标为%d\n", max, a);
    min_idx = FindMin(b, 10);
    printf("数组b中的最小数为%f,其下标为%d\n", b[min_idx], min_idx);
    float temp = b[a];
    b[a] = b[min_idx];
    b[min_idx] = temp;
    printf("交换后数组中各元素的值为:\n");
    int i;
    for (i = 0; i < 10; i++)
    {
        printf("%f ", b[i]);
    }
    printf("\n");
    return 0;
}

实验结果

在这里插入图片描述

标签:函数,idx,min,int,max,编程,str,深圳大学,程序设计
From: https://blog.csdn.net/qq_73179413/article/details/140899166

相关文章

  • Lua 脚本编程基础
    引言Lua是一种轻量级的脚本语言,用标准C编写,设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。由于其简洁和高效,Lua在游戏开发、嵌入式系统、网络编程等领域得到了广泛应用。Lua语言特点轻量级:Lua的解释器可以轻松嵌入到任何应用程序中。简洁:Lua......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(4) 3、5、9
    题单:2024“钉耙编程”中国大学生算法设计超级联赛(4)时间:07_2905多层血条思路就是模拟,上层和下层分开表示,如果dmg大于血条长度就全都置0,反之就要从上层开始置\('.'\)代码stringblood="ABCDE";stringstr[3];voidsolve(){cin>>n>>m>>hp>>dmg;str[0]......
  • 腾讯云AI代码助手评测:智能编程新时代,你准备好了吗?
    文章目录引言开发环境介绍腾讯云AI代码助手使用实例案例1案例2案例3获得的帮助与提升建议结语引言随着人工智能技术的不断发展,越来越多的开发者开始尝试利用AI工具来提高编程效率。腾讯云作为国内领先的云计算服务提供商,也推出了自己的AI生成代码插件。「腾讯云A......
  • Shell编程基本介绍
    文章目录Shell简介Shell环境第一个Shell脚本Shell脚本的运行方法基础语法Shell变量定义变量使用变量修改变量的值单引号和双引号的区别将命令的结果赋值给变量只读变量删除变量Shell传递参数特殊字符处理参数说明$*与$@区别Shell字符串三种形式的区别获取字符串长......
  • 编程实现模重复平方法的算法
    模重复平方法(又称为平方法)是一种用于求解非线性方程的迭代算法。算法的基本思路是通过不断迭代替换变量的方式,将非线性方程转化为线性方程,从而求解方程的根。以下是一个编程实现模重复平方法的算法的示例:```pythondeffixed_point_iteration(f,x0,epsilon,max_iterations)......
  • Shell编程——函数 和 输入/输出重定向
    文章目录Shell函数Shell输入/输出重定向输出重定向输入重定向重定向深入讲解/dev/null文件Shell函数shell中函数的定义格式如下:[function]funname[()]{ action: [returnint;]}参数说明:1、可以带functionfun()定义,也可以直接fun()定义,不带任何......
  • 编程小白如何成为大神?大学新生最详细学习攻略
    对于渴望在编程领域大展身手的大学新生而言,这里呈上一份精心打造的入门指南,助力你在编程的探索之旅中稳健前行。一、编程语言的抉择在开启编程学习的征程时,首要任务便是挑选适宜的编程语言。对于初涉此领域的你们,以下几种语言值得考虑:Python语言,以其简洁明了的语法结构......
  • 衡庐浅析·C语言程序设计·第四章·数组
        本文适用于大学的期中期末考试、专升本(专接本、专插本)考试、408等考研预科。如有相关题目疑问或建议欢迎在评论区进行互动。    转载请标明出处。在深入学习C语言的数组之前,我们先回顾一下C语言的三大基本结构:顺序结构、选择结构和循环结构。这些结构构成......
  • 2024“钉耙编程”中国大学生算法设计超级联赛(5)
    目录写在前面101110131006100810021005写在最后写在前面补题地址:https://acm.hdu.edu.cn/listproblem.php?vol=65,题号7481~7493。以下按个人难度向排序。比较顺利的一场,今天双人双题环节没有卡太久,赢!置顶广告:中南大学ACM集训队绝赞招新中!有信息奥赛基础,获得NOIP省一等......
  • Linux软件编程
    8月1日学习了最后的标准IO,流的偏移。然后进入了文件IO的学习,包括文件的打开、读写、关闭以及偏移。之后又学习了剩余的一些函数接口,可以对文件进行一些其余操作。8月2日学习了目录文件和链接文件的操作。目录文件的操作包括目录的创建、删除以及获取当前目录的路径和改变当前......