3.4.2思考题
输入一些数,统计个数
点击查看代码
#include<stdio.h>
int main()
{
int cnt = 0, tmp;
while(scanf("%d", &tmp) == 1)
cnt++;
printf("%d\n", cnt);
return 0;
}
输入一些数,求最大值、最小值和平均数
点击查看代码
#include<stdio.h>
#define maxn 100000000
int main()
{
int tot = 0, cnt = 0, tmp, max = -maxn, min = maxn;
while(scanf("%d", &tmp) == 1)
{
cnt++;
tot += tmp;
if(max < tmp) max = tmp;
if(min > tmp) min = tmp;
}
printf("%d %d %f\n", min, max, (double)tot/cnt);
return 0;
}
输入一些数,那两个数最接近
点击查看代码
#include<stdio.h>
#define maxn 100000
#define p(a, b) (a>b)?(a-b):(b-a)
int a[105];
int main()
{
int cnt = 0, del = maxn, n, m;
while(scanf("%d", &a[cnt]) == 1) cnt++;
for(int i = 0; i < cnt - 1; i++)
{
for(int j = i + 1; j < cnt; j++)
{
if(del > p(i, j))
{
del = p(i, j);
n = i;
m = j;
}
}
}
printf("%d %d\n", n, m);
return 0;
}
输入一些数,求第二大的值
点击查看代码
#include<stdio.h>
int main()
{
int max1, max2, tmp, flag = 1;
while(scanf("%d", &tmp) == 1)
{
if(flag)
{
max1 = tmp;
max2 = tmp;
flag = 0;
continue;
}
if(tmp > max1)
{
max2 = max1;
max1 = tmp;
}
else if(tmp > max2) max2 = tmp;
}
printf("%d\n", max2);
return 0;
}
输入一些数,求他们的方差
点击查看代码
#include<stdio.h>
int a[105];
int main()
{
int cnt = 0, tot = 0;
double ans = 0;
while(scanf("%d", &a[cnt++]) == 1)
tot += a[cnt-1];
for(int i = 0; i < cnt-1; i++)
ans += ((double)a[i] - (double)tot/(cnt-1))*((double)a[i] - (double)tot/(cnt-1));
printf("%f\n", ans);
return 0;
}
总结:是否需要保存数据,其实质就是判断这些数据之间的关联性,如果其中的每个成员都需要与每位成员比较一番才能得出答案是强关联,此时一般需要将所有的数据进行存储;如果只是少数几个数据需要与大多数的成员进行比较,此时一般有方法使得这一种弱关联不需要一定存储所有的数据成员。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)