zoukankan      html  css  js  c++  java
  • 第六周编程总结


    函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。

    函数接口定义:
    double fun (double *a, double *b);
    其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。

    裁判测试程序样例:
    #include<stdio.h> #include <math.h> double fun (double *a, double *b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f ", y ); return 0; }

    /* 请在这里填写答案 */
    输入样例:
    12 20
    输出样例:
    y=7.94
    实验代码:
    double fun (double *a, double *b) { double mun; mun=sqrt(*a)+sqrt(*b); return mun; }
    实验思路:将a与b的平方根之和复制给mun然后直接返回至mun。
    思维导图:
    实验所遇问题:刚开始忘记是用返回了,直接用了printf 结果显示有两个值。
    实验结果截图:
    读入n个整数,调用max_min()函数求这n个数中的最大值和最小值。

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

    输出格式:
    输出最大值和最小值。

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

    5
    8 9 12 0 3
    输出样例:
    在这里给出相应的输出。例如:

    max = 12
    min = 0
    作者: 陈晓梅
    单位: 广东外语外贸大学
    时间限制: 400 ms
    内存限制: 64 MB
    代码长度限制: 16 KB
    实验代码:
    #include<stdio.h> void max_min(int a[],int n,int* pmax,int* pmin); int main(void){ int n,i,max,min; int *pmax,*pmin; int a[1000]; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } max_min(a,n,&max,&min); printf("max = %d ",max); printf("min = %d ",min); return 0; } void max_min(int a[],int n,int * pmax,int * pmin) { int i,j,t,max,min; for(i=1;i<n;i++) for(j=0;j<n-1;j++){ if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } *pmax=a[n-1]; *pmin=a[0]; }
    实验思路: 首先先声明要调用的函数,接着定义除自定义函数外要定义的指针等参数,输入和输出等,最后再将自定义函数表示出来(用冒泡法排序后将第一个数和最后一个数的值赋给指针)。
    思维导图:
    实验所遇问题:刚开始在定义变量时没有定义整形变量指针,导致不可将地址给指针,经助教指出改正。

    还有在写完代码后没有注意输出格式的问题。
    实验结果截图:
    为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。。

    函数接口定义:
    void input(int *arr,int n);
    void max_min(int *arr,int n);
    void output(int *arr,int n);
    三个函数中的 arr和n 都是用户传入的参数。n 是元素个数。

    input函数的功能是输入 n个元素存到指针arr所指向的一维数组中。

    max_min函数的功能是求指针arr所指向的一维数组中的最大值和最小值,其中最小的数与第一个数对换,将最大的数与最后一个数对换。

    output函数的功能是在一行中输出数组元素,每个元素输出占3列。

    裁判测试程序样例:
    #include<stdio.h> void input(int *arr,int n); void max_min(int *arr,int n); void output(int *arr,int n); int main() { int a[10]; input(a,10); max_min(a,10); output(a,10); return 0; }

    /* 请在这里填写答案 */
    输入样例:
    5 1 4 8 2 3 9 5 12 7
    输出样例:
    1 5 4 8 2 3 9 5 7 12
    实验代码:
    void input(int *arr,int n) { int i; for(i=0;i<n;i++){ scanf("%d",&arr[i]); } } void max_min(int *arr,int n) { int i,j,a=0,m; for(j=1;j<n;j++){ if(arr[j]<arr[a]){ a=j; } } m=arr[a]; arr[a]=arr[0]; arr[0]=m; for(j=1;j<n;j++){ if(arr[j]>arr[a]){ a=j; } } m=arr[a]; arr[a]=arr[9]; arr[9]=m; } void output(int *arr,int n) { int i; for(i=0;i<n;i++){ printf("%3d",arr[i]); } }
    实验思路:分别按要求编写三个自定义函数:
    输入函数 :循环n次输入到数组中去;
    输出函数:循环n次把数组中的数输出;
    比较函数:循环n-1次,先假设一个最小值,将最小值依次与数组中的数进行比较,得出最小的数然后与第一位数交换数值。后者同理。
    思维导图:
    实验所遇问题:开始在%3的前后都加了空格因为看他的输出结果是前面有空格才对;但助教在群里说不要加。另外就是第一次写比较函数时用了冒泡法排序去了,然后结果错误咯。
    实验结果截图:
    为什么要使用指针:指针有利于大块数据的管理,指针即为内存的地址。用指针也可减少内存。
    学习感悟:这次作业复习了函数,了解了一下指针和思考指针的作用。

  • 相关阅读:
    LeetCode 32. 最长有效括号(Longest Valid Parentheses)
    LeetCode 141. 环形链表(Linked List Cycle)
    LeetCode 160. 相交链表(Intersection of Two Linked Lists)
    LeetCode 112. 路径总和(Path Sum)
    LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
    LightGBM新特性总结
    sql service 事务与锁
    C#泛型实例详解
    C# 中的委托和事件(详解)
    C# DateTime日期格式化
  • 原文地址:https://www.cnblogs.com/fengmixinluo/p/10659277.html
Copyright © 2011-2022 走看看