第一次作业

一,视频笔记

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二,代码列表

 

 

 三,存在问题

  视频学习中的问题:1,视频中许多术语不清楚。2,自己看视频学习效率低,不如老师讲课理解的好。3,变量的存储,使用不理解。

  4,%ld:用来输出长整型数

        %d:用来输出整形数

        %x:以十六进制数形式输出整形数(一般用来输出地址)

PTA问题

   2  -6对于如下说明,语法和语义都正确的赋值是_____。 (2分)            问题;本题选项不理解

int c, *s, a[]={1, 3, 5};                                  解决方法;百度

 

 A、语法上正确(可能引起编译警告)。若非静态变量或全局变量,否则s没有被初始化,是随机值,*s的值无法确定,即没有确定的语义;若是静态变量或全局变量,s被初始化为0,对地址0的解引用操作没有确定的语义。
B、错误。理由同上,对随机地址的操作不具有确定的语义(s[0]等价于*s)。另外对随机地址单元的写操作(赋值)引起的后果不可预料。
C、正确,将a[1]的地址赋值给指针s。
D、语法错误,c(int)和a(const int*)的类型不匹配,会引起编译错误。

 

 

 

 

编写函数,求一组数中的最大值、最小值和平均值。

函数接口定义:

float fun(int a[],int n,int *max,int *min);

 

其中 anmaxmin 都是用户传入的参数。函数求a数组中n个元素的最大值、最小值和平均值。最大值和最小值分别通过maxmin带回,函数返回平均值 。

裁判测试程序样例:

#include <stdio.h>
float fun(int a[],int n,int *max,int *min);
int main()
{
int x[10],i,m,n;
float p;
for(i=0;i<10;i++)
  scanf("%d",&x[i]);
p=fun(x,10,&m,&n);
printf("max=%d,min=%d,average=%.2f\n",m,n,p);
return 0;
}

问题;没思路,不知道如何在函数中编写参数之间的关系,变量之间的关系比较混乱。

2, [Error] 'i' was not declared in this scope;“i”未声明。

 3,c语言中多个数的平均数求法?

解决方法;通过翻看教程,网上查阅。

结果;定义sum

  sum+=一个变量(j),求出和,average=sum/j

float fun(int a[],int n,int *max,int *min)
{
 int i;
 float sum = 0; 
 *min=*max=a[0];
   for(i=0;i<10;i++)
   {
     if(a[i]>*max){
       *max = a[i];
      }
     if(a[i]<*min){ 
     *min = a[i];
     }
     sum+=a[i];
    }
    return sum/n;
}

 

该函数涉及最值,和求平均数。

 

posted @ 2020-03-03 15:13  计科19-2关世雄  阅读(419)  评论(2编辑  收藏  举报