第一次作业
一,视频笔记
二,代码列表
三,存在问题
视频学习中的问题: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);
其中 a
、n
、max
和 min
都是用户传入的参数。函数求a
数组中n
个元素的最大值、最小值和平均值。最大值和最小值分别通过max
和 min
带回,函数返回平均值 。
裁判测试程序样例:
#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; }
该函数涉及最值,和求平均数。