7.29while循环

本文介绍了C语言中的while循环结构,包括break用于中断循环和continue跳过当前循环剩余部分的用法。同时,讲解了getchar和putchar函数在读取和输出字符时的注意事项,特别是涉及缓冲区的内容。在处理用户输入,如密码验证时,由于 字符可能导致的误判问题,文章提出了解决缓冲区残留字符的方法,即在确认密码后添加getchar()来清除 。

while语法结构:
while(表达式)
        循环语句:
如果表达式为真,则循环语句执行
int main()
{
    int a = 0;
    while (a <= 10)
    {
        printf("%d\n", a);
        a++;
    }
    return 0;
}



需要循环停止也需要break
int main()
{
    int a = 0;
    while (a <= 10)
    {
        if(5==a)
                break:
        printf("%d\n", a);
        a++;
    }
    return 0;
}
此时打印到4就停止,跳出循环
 


对于continue
int main()
{
    int a = 0;
    while (a <= 10)
    {
        if(5==a)
                continue;
        printf("%d\n", a);
        a++;
    }
    return 0;

}
continue作用是跳过本次循环内continue后面的代码,直接去判断部分(开头),是否进行下一次循环。
 


getchar:从一个流或者标准输入(键盘)中读取一个字符,返回值是整型,也就是读取字符的ASCII值,如果读取错误则返回EOF
putchar:输出一个字符

P.S.getchar并非直接读取键盘输入内容,当键盘在命令提示符里输入一个字符时,比如输入“A”,“A\n”就会被放到缓冲区里,第一遍时“A”作为ch的值放在putchar里打印,第二遍返回时再把“\n”打印实现换行。
int ch = 0;
    while ((ch = getchar()) != EOF)//如果放在ch里的值不是EOF,就执行下面的语句
        putchar(ch);
 



        关于这个代码的问题,在输入密码和回车后会直接输出错误的内容,假设密码为“123456”,键盘输入这一串字符串后,实际上是“123456\n”放在缓冲区里,代码从上往下编译过程中,scanf读取了123456,放在了数组password里(数组本身就是地址,所以前面不用加地址符“&”),缓冲区只剩下“\n”,继续往下编译时,getchar读取到了“\n”放在ch里,根据下方的分支语句,判断ch不是“Y”,所以直接打印了“确认失败”。
        为了修复这个bug,我们需要清理缓冲区,所以我们只需要在请确认密码后加上一个getchar();,拿走缓冲区里的“\n”就行,这样下面的getchar就会等待键盘输入字符。
        当密码里带有空格时,比如“12345  abc”,这样放在缓冲区的就是“12345 abc\n”,scanf会读取空格前面的内容,只拿走“12345”。

使用上图的代码,表示如果在缓冲区里读取了一个字符不是“\n”,那就丢掉并且重复读取,直到读取到“\n”,用于清理缓冲区。

 

 

实验内容 本项实验通过队列的应用,实现电子秤采样数据分时段平均值计算的仿真模拟。 数据输入文件exp03.in中内容如下例: 10 1.62 1.22 1.89 0.63 0.01 1.86 0.92 1.8 1.13 2.06 1.06 1.91 1.09 2.24 0.3 1.87 0.47 1.74 0.26 1.62 0 1.24 1.75 0.23 2.3 0.6 2.42 0.89 2 0.72 2.25 1.11 2.16 0.01 0.59 2.3 0.92 1.34 0.33 2.21 0.32 2.41 0.65 1.31 1.08 1.74 0.09 2.13 0.39 1.39 1.26 2.19 1.16 1.32 0.17 2.06 0.33 1.57 0.81 2.24 0.86 0.01 1.45 0.52 2.03 0.98 1.79 0.51 1.66 1.25 1.48 0.97 0.02 2.43 1.09 1.32 0.25 1.4 1.22 1.32 0.43 1.35 1.05 1.47 0.93 1.35 0.58 1.59 1.05 2.05 0.96 1.42 0.28 2.06 0.92 1.5 0.4 0.01 2.47 0.73 2.93 4.15 3.25 4.98 3.63 5.06 3.09 4.73 3.52 4.95 3.52 3.98 3.82 4.7 2.91 4.96 10.99 3.21 4.36 3.44 4.58 3.08 4.01 2.94 4.85 3.02 4.63 3.27 4.57 11.02 3.79 4.3 3.73 4.3 3.92 4.35 3.12 4.55 3.14 4.35 3.6 4.06 3.07 4.55 3.46 4.96 3.82 4.99 3.71 4.5 3.37 4.42 3.85 5.01 3.33 4.68 3.01 4.22 3.35 10.7 4.99 3.76 4.25 3.15 4.55 3.62 4.75 3.43 4.91 3.86 3.99 2.99 5.05 3.11 4.24 3.82 4.7 3.21 4.62 3.43 4.81 3.54 4.07 3.25 4.84 3.42 4.02 3.48 4.91 3.46 4.62 3.7 4.29 3.91 4.29 3.58 4.68 10.09 3.36 4.47 5.74 4.91 5.78 5.57 6.05 4.8 5.92 5.08 6.6 5.02 5.96 5.57 6.33 5.41 5.81 5.6 6.32 5.46 6.03 5.03 5.86 4.71 5.81 5.65 5.87 5.46 6.28 5.55 6.44 5.2 6.12 5.49 6.37 4.75 6.36 4.89 5.96 5.35 6.16 5.12 6.06 4.82 5.92 5.4 5.78 5.02 6.44 5.56 6.27 5.02 6.46 5.63 6.33 4.84 6.43 4.95 5.91 5.37 5.7 5.46 6.19 5.34 6.26 4.94 6.42 4.94 5.9 4.8 5.86 5.12 5.86 5.5 6.49 4.78 6.51 5.56 5.76 5.36 6.27 5.08 6.24 5.09 5.78 5.62 6.31 5.11 6.35 5.18 6.51 5.24 6.59 5.29 6.46 4.89 5.67 5.62 6.37 4.95 5.73 4.77 5.64 6.53 5.95 6.55 5.88 6.24 5.73 6.7 5.44 5.98 5.8 6.1 5.64 6.35 5.52 6.8 5.39 6.7 5.26 6.02 5.86 6.58 5.9 6.52 5.4 6.48 5.25 6.84 5.53 6.7 5.37 6.2 5.29 6.42 5.36 6.57 5.84 6.78 5.64 11.9 6.55 5.81 6.68 5.56 6.04 5.53 6.39 5.34 5.99 5.96 6.12 5.68 6.17 5.21 6.17 5.67 6.6 5.3 6.75 5.9 6.5 5.82 6.85 5.17 5.98 5.78 6.04 5.26 6.77 5.81 6.37 5.73 6.11 5.56 6.58 5.82 6.86 5.37 6.61 5.92 6.68 5.67 6.13 5.25 6.5 5.75 6.23 5.52 6.7 5.84 6.64 0.01 5.8 6.36 5.12 6.75 5.09 6.65 5.11 6.43 6.53 6.44 6.95 6.29 6.66 5.78 6.56 6.3 7.17 5.88 6.74 5.78 7 6.44 6.86 6.1 6.55 6.13 6.61 6.31 6.95 6.39 6.97 6.43 6.87 5.96 7.19 6.34 6.9 5.96 7.28 6.19 6.53 6.49 7.2 5.91 7.1 6.27 6.62 5.9 6.86 5.77 6.86 6.13 7.07 5.81 7.07 6.49 6.8 5.97 7.05 6.16 6.65 5.77 6.73 5.96 6.82 6.32 7.1 5.91 6.56 5.85 7.29 5.81 7.22 5.71 6.88 5.73 6.72 6.04 6.6 5.91 6.61 6.34 7.22 6.1 7.13 5.79 7.22 5.73 7.14 6.22 6.79 6.49 7.01 5.83 0.02 7.26 6.17 6.71 5.71 6.82 5.86 6.73 6.32 6.95 5.85 6.59 6.1 7.18 7.07 5.87 6.73 5.96 6.44 10.09 6.3 6.64 6.26 6.53 6.12 7.1 6.28 6.85 6.24 6.71 5.92 6.91 6.03 6.8 6.23 6.87 6.23 7.11 6.32 6.69 6.14 6.96 5.86 0.01 6.42 6.11 6.49 6.35 6.64 5.95 7.04 5.81 6.8 5.96 6.8 6.1 6.82 6.23 6.55 6.4 11.3 6.51 6.17 6.85 5.76 6.61 6.36 7.06 5.99 6.58 6.1 6.45 5.91 6.63 5.75 6.82 5.9 6.44 6.32 6.92 5.89 6.92 5.96 6.75 5.86 6.68 5.76 6.89 6.13 6.52 5.83 6.85 5.99 6.48 6.13 6.7 6.23 7.11 6.18 0.02 6.48 6.34 6.73 6.18 6.89 5.81 6.8 6.17 6.76 5.98 6.56 6.29 6.58 6.33 6.27 6.48 0.01 5.74 6.52 6.02 6.49 5.96 6.44 5.86 6.83 6.14 6.69 5.88 6.75 5.85 6.84 6.22 6.58 10.09 6.03 6.55 6.17 6.86 6.05 6.66 5.78 6.4 6.29 6.5 0.01 5.78 6.32 5.72 6.69 0.01 5.8 6.73 5.79 6.47 5.78 6.65 5.73 6.35 6.3 6.35 6.25 6.69 5.98 6.67 5.72 6.7 5.92 10.08 6.73 6.01 6.84 10.01 6.15 6.67 5.92 6.52 5.94 6.68 5.76 6.37 5.97 6.53 6.13 6.51 6.04 0.02 6.49 6.2 6.52 5.88 6.67 6.21 10.7 6.85 5.97 6.72 5.9 6.68 6.29 6.38 6.25 6.45 6.25 6.89 6.15 6.67 6.2 6.79 6.07 6.81 5.89 10.9 6.37 5.92 5.95 6.78 5.98 6.62 6.11 6.49 6.02 6.49 6.01 6.63 6.24 6.67 5.91 6.46 6.27 6.46 5.97 6.62 5.87 6.58 6.07 6.42 6.36 6.52 6.14 6.49 6.33 6.73 6.31 6.39 6.14 6.41 6.2 6.8 6.36 6.54 5.92 6.83 6 6.54 6 6.44 6.3 6.48 6.29 6.55 6.27 6.71 6.21 6.62 5.89 6.82 6.1 6.39 5.9 6.44 6.12 6.76 6.26 6.44 5.91 11.3 6.72 6.15 6.79 6.01 6.53 6.27 6.36 6.08 6.55 6.07 6.64 6.29 6.8 6.2 6.66 6.31 6.6 6.23 6.75 6.07 6.78 6.06 6.39 0.01 6 6.68 6 6.62 6.16 6.55 6.36 6.39 5.95 6.81 6.25 6.58 6.22 6.61 6.56 6.19 6.5 6.18 6.56 6.28 6.62 6.22 6.52 6.15 6.66 6.15 6.48 6.23 6.63 6.03 6.41 6.04 6.45 6.16 6.51 6.09 10.01 6.36 6.17 6.43 6.06 10.1 6.35 6.28 6.68 6.21 6.47 6.1 6.52 6.28 6.54 6.12 6.52 6.05 6.67 6.22 6.51 6.15 6.69 6.06 6.69 6.26 6.6 6.02 6.51 6.29 6.6 6.19 6.5 6.17 6.45 6.03 6.64 6.18 6.65 6.16 6.6 6.18 6.72 5.98 6.38 6.04 6.41 6.3 6.55 6.17 6.58 6.25 6.58 0.01 5.97 6.41 6.27 6.74 5.98 6.44 6.09 6.54 0.01 6.03 6.54 6.01 6.59 6.15 6.59 5.96 6.49 6.32 6.7 6.12 6.73 6.12 6.72 6.14 6.31 6.59 6.22 6.39 6.21 6.48 6.25 6.48 6.08 6.49 6.35 6.51 6.07 6.47 6.07 6.49 6.09 6.47 6.22 6.55 6.26 6.62 6.32 6.62 6.33 6.41 6.36 6.43 6.29 6.44 6.33 6.64 6.07 6.44 6.24 6.54 6.16 6.5 6.16 6.55 6.21 6.47 6.17 6.36 6.31 6.47 6.07 6.37 6.28 6.45 6.17 6.41 6.24 6.46 6.2 6.55 6.31 6.59 6.17 6.4 6.27 6.42 6.18 6.43 6.23 6.65 6.14 6.5 6.15 6.53 6.28 6.39 6.23 6.53 6.32 6.44 6.18 6.45 6.09 6.47 6.19 6.52 6.07 6.37 6.17 6.42 6.1 6.46 6.09 6.43 6.16 6.48 6.26 6.47 6.36 6.58 6.27 6.45 6.21 6.5 其中,标记为蓝色的第一个数字表示采样的批次或时段数,本例为10批次,或称10个采样时段;第二行起是10个时段的采样数据,每个时段有100次采样,其中有效数据介于0.05和9.99之间,异常采样数据标记为暗红色。 计算出的各时段平均值输出到exp03.out文件,其内容如下: 1.285 3.987 5.665 6.013 6.485 6.412 6.302 6.357 6.348 6.346 打开客户端程序client所在文件夹中的源程序exp03.cpp。补充程序代码完成其中的:⑴ 入队函数;⑵ 出队函数;⑶ 主函数中采样数据出队和求平均部分程序段。 #include #include #include <stdio.h> #include <stdlib.h> //#include <windows.h> //#include <winbase.h> #define queueSize 120 // 队列空间大小 using namespace std; float queue[queueSize]; // 循环队列 int front, rear; // 队首指针,队尾指针 void initiate() // 初始化队列 { front = rear = 0; } bool enqueue(float e) // 入队 {//************************************************ if ((rear + 1) % queueSize == front) return false; queue[rear] = e; rear = (rear + 1) % queueSize; return true; //================================================ } float dequeue() // 出队 {//************************************************ float e = queue[front]; front = (front + 1) % queueSize; return e; if (front == rear) return 0; //================================================ } /* void delay(int ms) // 延时 { int start = GetTickCount(); while(GetTickCount()-start < ms); } */ int main() { int i, j; int group, NumPerGroup; // 采样分组数,出队数据个数 float data, average; // 数据,某组平均值 freopen("exp03.in", "r", stdin); freopen("exp03.out", "w", stdout); initiate(); cin >> group; for(i=0; i<group; i++) { for(j=0; j<100; j++) // 一个时段采样数据入队 { cin >> data; if(data>=0.05 && data<=9.99) enqueue(data); } // delay(50); _sleep(50); // 延时,模拟时间分段 average = 0.0; //************* 采样数据出队,求平均 ************* //================================================ cout << setprecision(3) << setiosflags(ios::fixed | ios::showpoint) << average << ' '; } fclose(stdin); fclose(stdout); return 1; } 补充
11-30
实验内容 本项实验通过队列的应用,实现电子秤采样数据分时段平均值计算的仿真模拟。 数据输入文件exp03.in中内容如下例: 10 1.62 1.22 1.89 0.63 0.01 1.86 0.92 1.8 1.13 2.06 1.06 1.91 1.09 2.24 0.3 1.87 0.47 1.74 0.26 1.62 0 1.24 1.75 0.23 2.3 0.6 2.42 0.89 2 0.72 2.25 1.11 2.16 0.01 0.59 2.3 0.92 1.34 0.33 2.21 0.32 2.41 0.65 1.31 1.08 1.74 0.09 2.13 0.39 1.39 1.26 2.19 1.16 1.32 0.17 2.06 0.33 1.57 0.81 2.24 0.86 0.01 1.45 0.52 2.03 0.98 1.79 0.51 1.66 1.25 1.48 0.97 0.02 2.43 1.09 1.32 0.25 1.4 1.22 1.32 0.43 1.35 1.05 1.47 0.93 1.35 0.58 1.59 1.05 2.05 0.96 1.42 0.28 2.06 0.92 1.5 0.4 0.01 2.47 0.73 2.93 4.15 3.25 4.98 3.63 5.06 3.09 4.73 3.52 4.95 3.52 3.98 3.82 4.7 2.91 4.96 10.99 3.21 4.36 3.44 4.58 3.08 4.01 2.94 4.85 3.02 4.63 3.27 4.57 11.02 3.79 4.3 3.73 4.3 3.92 4.35 3.12 4.55 3.14 4.35 3.6 4.06 3.07 4.55 3.46 4.96 3.82 4.99 3.71 4.5 3.37 4.42 3.85 5.01 3.33 4.68 3.01 4.22 3.35 10.7 4.99 3.76 4.25 3.15 4.55 3.62 4.75 3.43 4.91 3.86 3.99 2.99 5.05 3.11 4.24 3.82 4.7 3.21 4.62 3.43 4.81 3.54 4.07 3.25 4.84 3.42 4.02 3.48 4.91 3.46 4.62 3.7 4.29 3.91 4.29 3.58 4.68 10.09 3.36 4.47 5.74 4.91 5.78 5.57 6.05 4.8 5.92 5.08 6.6 5.02 5.96 5.57 6.33 5.41 5.81 5.6 6.32 5.46 6.03 5.03 5.86 4.71 5.81 5.65 5.87 5.46 6.28 5.55 6.44 5.2 6.12 5.49 6.37 4.75 6.36 4.89 5.96 5.35 6.16 5.12 6.06 4.82 5.92 5.4 5.78 5.02 6.44 5.56 6.27 5.02 6.46 5.63 6.33 4.84 6.43 4.95 5.91 5.37 5.7 5.46 6.19 5.34 6.26 4.94 6.42 4.94 5.9 4.8 5.86 5.12 5.86 5.5 6.49 4.78 6.51 5.56 5.76 5.36 6.27 5.08 6.24 5.09 5.78 5.62 6.31 5.11 6.35 5.18 6.51 5.24 6.59 5.29 6.46 4.89 5.67 5.62 6.37 4.95 5.73 4.77 5.64 6.53 5.95 6.55 5.88 6.24 5.73 6.7 5.44 5.98 5.8 6.1 5.64 6.35 5.52 6.8 5.39 6.7 5.26 6.02 5.86 6.58 5.9 6.52 5.4 6.48 5.25 6.84 5.53 6.7 5.37 6.2 5.29 6.42 5.36 6.57 5.84 6.78 5.64 11.9 6.55 5.81 6.68 5.56 6.04 5.53 6.39 5.34 5.99 5.96 6.12 5.68 6.17 5.21 6.17 5.67 6.6 5.3 6.75 5.9 6.5 5.82 6.85 5.17 5.98 5.78 6.04 5.26 6.77 5.81 6.37 5.73 6.11 5.56 6.58 5.82 6.86 5.37 6.61 5.92 6.68 5.67 6.13 5.25 6.5 5.75 6.23 5.52 6.7 5.84 6.64 0.01 5.8 6.36 5.12 6.75 5.09 6.65 5.11 6.43 6.53 6.44 6.95 6.29 6.66 5.78 6.56 6.3 7.17 5.88 6.74 5.78 7 6.44 6.86 6.1 6.55 6.13 6.61 6.31 6.95 6.39 6.97 6.43 6.87 5.96 7.19 6.34 6.9 5.96 7.28 6.19 6.53 6.49 7.2 5.91 7.1 6.27 6.62 5.9 6.86 5.77 6.86 6.13 7.07 5.81 7.07 6.49 6.8 5.97 7.05 6.16 6.65 5.77 6.73 5.96 6.82 6.32 7.1 5.91 6.56 5.85 7.29 5.81 7.22 5.71 6.88 5.73 6.72 6.04 6.6 5.91 6.61 6.34 7.22 6.1 7.13 5.79 7.22 5.73 7.14 6.22 6.79 6.49 7.01 5.83 0.02 7.26 6.17 6.71 5.71 6.82 5.86 6.73 6.32 6.95 5.85 6.59 6.1 7.18 7.07 5.87 6.73 5.96 6.44 10.09 6.3 6.64 6.26 6.53 6.12 7.1 6.28 6.85 6.24 6.71 5.92 6.91 6.03 6.8 6.23 6.87 6.23 7.11 6.32 6.69 6.14 6.96 5.86 0.01 6.42 6.11 6.49 6.35 6.64 5.95 7.04 5.81 6.8 5.96 6.8 6.1 6.82 6.23 6.55 6.4 11.3 6.51 6.17 6.85 5.76 6.61 6.36 7.06 5.99 6.58 6.1 6.45 5.91 6.63 5.75 6.82 5.9 6.44 6.32 6.92 5.89 6.92 5.96 6.75 5.86 6.68 5.76 6.89 6.13 6.52 5.83 6.85 5.99 6.48 6.13 6.7 6.23 7.11 6.18 0.02 6.48 6.34 6.73 6.18 6.89 5.81 6.8 6.17 6.76 5.98 6.56 6.29 6.58 6.33 6.27 6.48 0.01 5.74 6.52 6.02 6.49 5.96 6.44 5.86 6.83 6.14 6.69 5.88 6.75 5.85 6.84 6.22 6.58 10.09 6.03 6.55 6.17 6.86 6.05 6.66 5.78 6.4 6.29 6.5 0.01 5.78 6.32 5.72 6.69 0.01 5.8 6.73 5.79 6.47 5.78 6.65 5.73 6.35 6.3 6.35 6.25 6.69 5.98 6.67 5.72 6.7 5.92 10.08 6.73 6.01 6.84 10.01 6.15 6.67 5.92 6.52 5.94 6.68 5.76 6.37 5.97 6.53 6.13 6.51 6.04 0.02 6.49 6.2 6.52 5.88 6.67 6.21 10.7 6.85 5.97 6.72 5.9 6.68 6.29 6.38 6.25 6.45 6.25 6.89 6.15 6.67 6.2 6.79 6.07 6.81 5.89 10.9 6.37 5.92 5.95 6.78 5.98 6.62 6.11 6.49 6.02 6.49 6.01 6.63 6.24 6.67 5.91 6.46 6.27 6.46 5.97 6.62 5.87 6.58 6.07 6.42 6.36 6.52 6.14 6.49 6.33 6.73 6.31 6.39 6.14 6.41 6.2 6.8 6.36 6.54 5.92 6.83 6 6.54 6 6.44 6.3 6.48 6.29 6.55 6.27 6.71 6.21 6.62 5.89 6.82 6.1 6.39 5.9 6.44 6.12 6.76 6.26 6.44 5.91 11.3 6.72 6.15 6.79 6.01 6.53 6.27 6.36 6.08 6.55 6.07 6.64 6.29 6.8 6.2 6.66 6.31 6.6 6.23 6.75 6.07 6.78 6.06 6.39 0.01 6 6.68 6 6.62 6.16 6.55 6.36 6.39 5.95 6.81 6.25 6.58 6.22 6.61 6.56 6.19 6.5 6.18 6.56 6.28 6.62 6.22 6.52 6.15 6.66 6.15 6.48 6.23 6.63 6.03 6.41 6.04 6.45 6.16 6.51 6.09 10.01 6.36 6.17 6.43 6.06 10.1 6.35 6.28 6.68 6.21 6.47 6.1 6.52 6.28 6.54 6.12 6.52 6.05 6.67 6.22 6.51 6.15 6.69 6.06 6.69 6.26 6.6 6.02 6.51 6.29 6.6 6.19 6.5 6.17 6.45 6.03 6.64 6.18 6.65 6.16 6.6 6.18 6.72 5.98 6.38 6.04 6.41 6.3 6.55 6.17 6.58 6.25 6.58 0.01 5.97 6.41 6.27 6.74 5.98 6.44 6.09 6.54 0.01 6.03 6.54 6.01 6.59 6.15 6.59 5.96 6.49 6.32 6.7 6.12 6.73 6.12 6.72 6.14 6.31 6.59 6.22 6.39 6.21 6.48 6.25 6.48 6.08 6.49 6.35 6.51 6.07 6.47 6.07 6.49 6.09 6.47 6.22 6.55 6.26 6.62 6.32 6.62 6.33 6.41 6.36 6.43 6.29 6.44 6.33 6.64 6.07 6.44 6.24 6.54 6.16 6.5 6.16 6.55 6.21 6.47 6.17 6.36 6.31 6.47 6.07 6.37 6.28 6.45 6.17 6.41 6.24 6.46 6.2 6.55 6.31 6.59 6.17 6.4 6.27 6.42 6.18 6.43 6.23 6.65 6.14 6.5 6.15 6.53 6.28 6.39 6.23 6.53 6.32 6.44 6.18 6.45 6.09 6.47 6.19 6.52 6.07 6.37 6.17 6.42 6.1 6.46 6.09 6.43 6.16 6.48 6.26 6.47 6.36 6.58 6.27 6.45 6.21 6.5 其中,标记为蓝色的第一个数字表示采样的批次或时段数,本例为10批次,或称10个采样时段;第二行起是10个时段的采样数据,每个时段有100次采样,其中有效数据介于0.05和9.99之间,异常采样数据标记为暗红色。 计算出的各时段平均值输出到exp03.out文件,其内容如下: 1.285 3.987 5.665 6.013 6.485 6.412 6.302 6.357 6.348 6.346 打开客户端程序client所在文件夹中的源程序exp03.cpp。补充程序代码完成其中的:⑴ 入队函数;⑵ 出队函数;⑶ 主函数中采样数据出队和求平均部分程序段。 #include <iostream> #include <iomanip> #include <stdio.h> #include <stdlib.h> //#include <windows.h> //#include <winbase.h> #define queueSize 120 // 队列空间大小 using namespace std; float queue[queueSize]; // 循环队列 int front, rear; // 队首指针,队尾指针 void initiate() // 初始化队列 { front = rear = 0; } bool enqueue(float e) // 入队 {//************************************************ if ((rear + 1) % queueSize == front) return false; queue[rear] = e; rear = (rear + 1) % queueSize; return true; //================================================ } float dequeue() // 出队 {//************************************************ float e = queue[front]; front = (front + 1) % queueSize; return e; if (front == rear) return 0; //================================================ } /* void delay(int ms) // 延时 { int start = GetTickCount(); while(GetTickCount()-start < ms); } */ int main() { int i, j; int group, NumPerGroup; // 采样分组数,出队数据个数 float data, average; // 数据,某组平均值 freopen("exp03.in", "r", stdin); freopen("exp03.out", "w", stdout); initiate(); cin >> group; for(i=0; i<group; i++) { for(j=0; j<100; j++) // 一个时段采样数据入队 { cin >> data; if(data>=0.05 && data<=9.99) enqueue(data); } // delay(50); _sleep(50); // 延时,模拟时间分段 average = 0.0; //************* 采样数据出队,求平均 ************* //================================================ cout << setprecision(3) << setiosflags(ios::fixed | ios::showpoint) << average << ' '; } fclose(stdin); fclose(stdout); return 1; }
11-30
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值