c - 程序中的额外输出
问题描述
我一直在尝试创建一个程序,如果后续数字的平均值小于该数字,则该程序会在数组中打印一个数字。
这是我写的代码
#include <stdio.h>
int main(void) {
int a,b[100],i,m,av=0,kk,p=0,q;
scanf("%d",&a);
for(i=0;i<a;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<a;i++)
{
kk=b[i];
for(m=i+1;m<a;m++)
{
av=av+b[m];
p=p+1;
}
q=av/p;
if(kk>q)
{
printf("%d\n",kk);
}
}
}
我的输入是 7 - 元素数
(现在是元素)
23
34
12
21
14
26
33
输出应为 34 和 33,但在输出中也显示 26。我一直在试图找出错误,但遇到了死胡同。帮助表示赞赏。谢谢
解决方案
**
你犯了两个错误
**
当 i 指向最后一个元素时,m 正在检查不存在的第 (i+1) 个元素,因此请循环直到最后一个元素。
对于检查平均值后的每个元素,将 av 和 p 值设为 0。最后打印始终为真的最后一个元素
#include<stdio.h> int main(void) { int a,b[100],i,m,av=0,kk,p=0,q=0; scanf("%d",&a); for(i=0;i<a;i++) { scanf("%d",&b[i]); } for(i=0;i<a-1;i++) { kk=b[i]; av=0; p=0; for(m=i+1;m<a;m++) { av +=b[m]; p +=1; } q = av/p; if(kk>q) { printf("%d ",kk); } } if(i==a-1) { printf("%d ",b[a-1]); } }
推荐阅读
- python - 查看潜在选择正则表达式之后会发生什么
- javascript - 如何在 React JS + Typescript 应用程序中读取本地 JSON 文件并访问数据?
- vue.js - 笑话:如何模拟 vuex 中使用的 vue-router
- ios - 从 Tableview 更新 Viewcontroller 中的标签文本
- python - pytesseract 在 windows 平台上不起作用
- c# - 使用部分匹配的函数作为代表?
- javascript - 从单个文件中导出 typescript 类和接口
- scala - 如何删除我的列表变量中的空值?
- mysql - 如何使用 Gradle 导入 MySQL 并连接到 JavaFX
- python-3.x - Python3 修改的 Gram-Schmidt