将int转换为数组中的float

时间:2018-04-22 05:03:06

标签: int

问题是写一个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

有什么问题?

3 个答案:

答案 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]);
}
}