问题是写一个C程序读取一个包含M个元素的整数数组(从用户读取M)。程序将打印原始数组,每个值有3个小数位,然后计算给定数组中的赔率和平均数。 我顺便使用Dev-c
我的代码
#include<stdio.h>
void main(){
int M,i,even=0,odd=0;
int a[M];
float b[M];
printf("Input array size:");
scanf(" %d",&M);
for (i=0;i<M;i++){
printf("With a[%d]=",i);
scanf(" %d",&a);
}
printf("Original array:");
for (i=0;i<M;i++){
b[i]=(float)a;
printf(" %.3f",b);
}
}
问题:如果我输入4,输出就可以了。但是当我输入5个或更多时,输出显示:
输入数组大小:9
a [0] = 1
a [1] = 2 ... a [8] = 9
原始数组:1.000 2.000 3.000 4.000 0.000 0.000 7.000 8.000 9.000
有什么问题?
答案 0 :(得分:0)
#include<stdio.h>
void main(){
int M,i,even=0,odd=0;
int a[M];
float b[M];
printf("Input array size:");
scanf(" %d",&M);
for (i=0;i<M;i++){
printf("With a[%d]=",i);
scanf("%d",&a[i]);
}
printf("Original array:");
for (i=0;i<M;i++){
printf("%.3f",(float)a[i]);
printf(" ");
}
}
答案 1 :(得分:0)
在循环内部,您还需要指定[i]的索引。
您已创建阵列a&amp; b大小为M,即使M尚未初始化。那样有用吗?也许你应该把int [M];并浮动b [M];读完M的值后。
答案 2 :(得分:0)
代码中的错误: - 1.未经实例化的M
2.不使用偶数和奇数
#include<stdio.h>
void main(){
int M,i;
printf("Input array size:");
scanf(" %d",&M);
int a[M];
float b[M];
for (i=0;i<M;i++){
printf("With a[%d]= ",i);
scanf("%d",&a[i]);
}
printf("Original array:");
for (i=0;i<M;i++){
b[i]=(float)a[i];
printf(" %.3f",b[i]);
}
}