笔记,getchar ,平均值,随机值

本文介绍了两种实用的编程技巧:一种是通过位运算实现的高效计算两整数平均值的方法;另一种是利用Windows和time库生成指定范围内的随机数。文章深入浅出地解析了算法背后的原理。
int main( )
{
    char ch = 0;
    while ((ch=getchar( )) !=EOF)
    {
        printf("%c",ch);
    }
return 0;
}

此代码不断接收标准输入的一个字符并输出,EOFend of file)文件结束字符,win系统输入用ctrl+zos系统用control+d



int main()
{
	int m = 3;
	int n = 5;
	
	int average = (m&n)+((m^n)>>1);
	printf("%d\n", average);
}

平均值的一种高端算法,每个数转换为二进制是可看作是二进制种奇数位和偶数位的和,就是两个数求平均值时按照每位进行比较,每位的值如果相同则其这些相同位的和必然相等,仅需对不同的位进行求平均。

按位 时将两数不同位的为零,相同为0依然为零,同为1依然为1

按位异或时将不同的为1,这时用向后移位即可取平均,两部分相加即为平均值。


#include <Windows.h>
#include <time.h>

srand((unsigned int)time(NULL));

num = rand()%100;

需要引Windows和time头文件,用stand函数和time函数声明,需要用时用rand函数。%100是为了将范围缩小在0~100之间。

至于原因现在还没有完全明白,后期再做补充。


当前,全球经济格局深刻调整,数字化浪潮席卷各行各业,智能物流作为现代物流发展的必然趋势和关键支撑,正迎来前所未有的发展机遇。以人工智能、物联网、大数据、云计算、区块链等前沿信息技术的快速迭代与深度融合为驱动,智能物流不再是传统物流的简单技术叠加,而是正在经历一场从自动化向智能化、从被动响应向主动预测、从信息孤岛向全面互联的深刻变革。展望2025年,智能物流系统将不再局限于提升效率、降低成本的基本目标,而是要构建一个感知更全面、决策更精准、执行更高效、协同更顺畅的智慧运行体系。这要我们必须超越传统思维定式,以系统化、前瞻性的视角,全面规划和实施智能物流系统的建设。本实施方案正是基于对行业发展趋势的深刻洞察和对未来需的精准把握而制定。我们的核心目标在于:通过构建一个集成了先进感知技术、大数据分析引擎、智能决策算法和高效协同平台的综合智能物流系统,实现物流全链路的可视化、透明化和智能化管理。这不仅是技术层面的革新,更是管理模式和服务能力的全面提升。本方案旨在明确系统建设的战略方向、关键任务、技术路径和实施步骤,确保通过系统化部署,有效应对日益复杂的供应链环境,提升整体物流韧性,优化资源配置效率,降低运营成本,并最终为客户创造更卓越的价体验。我们致力于通过本方案的实施,引领智能物流迈向更高水平,为构建现代化经济体系、推动高质量发展提供强有力的物流保障。
在C语言中,有多种方法可以实现计算平均值。以下是几种常见的实现方式: ### 固定数量输入计算平均值 该方法通过定义一个固定大小的数组,让用户输入一定数量的整数,然后计算这些整数的平均值。 ```c #include <stdio.h> #define SIZE 10 int main() { int numbers[SIZE]; int i; int sum = 0; float average; printf("请输入%d个整数\n", SIZE); for (i = 0; i < SIZE; i++) { scanf("%d", &numbers[i]); sum += numbers[i]; } average = (float)sum / SIZE; printf("平均值为: %.2f\n", average); return 0; } ``` 此代码中,定义了一个大小为 `SIZE`(这里是10)的整型数组 `numbers`,通过 `for` 循环让用户输入 `SIZE` 个整数,将这些整数累加到 `sum` 中,最后将 `sum` 转换为 `float` 类型并除以 `SIZE` 得到平均值,使用 `printf` 输出结果,保留两位小数[^1]。 ### 不定数量输入计算平均值 该方法允许用户输入任意数量的数,直到用户按下回车键结束输入,然后计算这些数的平均值。 ```c #include<stdio.h> float Score_adver[20]={0}; float Adver(float Score_adver[],int Count) { float Sum=0; int i=0; for(i=0;i<Count;i++) { Sum+=Score_adver[i]; } return Sum/Count*1.0; } int main() { printf("请输入成绩:\n"); float adver=0; char ch = ' '; int Count=0; int i = 0; ungetc(ch, stdin); for(i=0;(ch=getchar())!='\n';i++){ scanf("%f",&Score_adver[i]); Count++; } adver=Adver(Score_adver,Count); printf("平均数是%5.2f",adver); } ``` 在这段代码中,定义了一个 `Adver` 函数用于计算平均值,在 `main` 函数中,通过 `for` 循环不断读取用户输入的数,直到用户按下回车键,将输入的数存储在 `Score_adver` 数组中,并记录输入数的个数 `Count`,调用 `Adver` 函数计算平均值并输出,保留两位小数[^3]。 ### 通过函数和全局变量计算平均值 该方法编写一个函数 `saver`,通过全局变量将数组中正数的平均值传递给调用程序。 ```c // 需要根据《C语言程序设计教程(朱鸣华)第3版》第8章145页编程题4的要完善代码 // 这里给出基本框架 #include <stdio.h> float pave, nave; void saver(int a[], int n) { int positive_sum = 0; int positive_count = 0; for (int i = 0; i < n; i++) { if (a[i] > 0) { positive_sum += a[i]; positive_count++; } } if (positive_count > 0) { pave = (float)positive_sum / positive_count; } else { pave = 0; } // 这里nave的含义根据题目要可能有所不同,可根据实际情况完善 nave = 0; } int main() { int a[] = {1, -2, 3, -4, 5}; int n = sizeof(a) / sizeof(a[0]); saver(a, n); printf("正数的平均值为: %.2f\n", pave); return 0; } ``` 此代码定义了全局变量 `pave` 和 `nave`,`saver` 函数遍历数组 `a`,统计正数的和与个数,计算正数的平均值并赋给 `pave`,在 `main` 函数中调用 `saver` 函数并输出正数的平均值,保留两位小数[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值