使用Dev-C++编写C程序:整数数组转浮点输出并统计奇偶
完善你的C程序实现需求
我看了你的代码,有几个小问题需要调整,下面是修复并完善后的完整代码,完全适配Dev-C++的编译环境:
#include<stdio.h> int main() { int M, i, even = 0, odd = 0; // 先读取数组大小M printf("Input array size: "); scanf("%d", &M); // 读取M后再定义变长数组(Dev-C++的GCC支持变长数组) int a[M]; float b[M]; // 读取数组元素 for (i = 0; i < M; i++) { printf("Enter a[%d] = ", i); scanf("%d", &a[i]); // 修正地址,指向数组的第i个元素 b[i] = (float)a[i]; // 将int类型转换为float类型,存入b数组 } // 以保留3位小数的格式输出数组 printf("\nOriginal array (3 decimal places): "); for (i = 0; i < M; i++) { printf("%.3f ", b[i]); } // 统计奇数和偶数的数量 for (i = 0; i < M; i++) { if (a[i] % 2 == 0) { even++; } else { odd++; } } // 输出统计结果 printf("\n\nNumber of even numbers: %d", even); printf("\nNumber of odd numbers: %d", odd); return 0; // 标准main函数的返回值 }
关键修改点说明:
- 调整数组定义顺序:先读取用户输入的
M,再定义数组a和b,避免未初始化变量M导致的数组大小异常。 - 修正输入地址:把
scanf(" %d",&a);改成scanf("%d", &a[i]);,确保每个输入值存入数组对应的位置。 - 添加类型转换逻辑:把int数组的元素转换成float类型存入
b数组,满足输出保留三位小数的要求。 - 完善输出和统计逻辑:补充了数组输出循环,以及遍历数组统计奇偶的循环,并输出最终统计结果。
- 规范main函数:把
void main()改成标准的int main()并添加return 0;,符合C语言标准。
你可以直接把这段代码复制到Dev-C++中编译运行,测试不同的数组大小和元素,就能看到符合需求的输出效果啦。
内容的提问来源于stack exchange,提问作者Anime Lover
相关产品推荐
相关产品推荐

