2015-11-14 2 views
1

У меня есть 2 вопроса: во-первых ..... У меня проблема с тем, чтобы это работало. Его номера, введенные в мою программу, являются двойной точностью. Мой компилятор говорит мне, что он ожидает, что мой массив будет int.Номера двойной точности в 2-дневном поплавке

Две ошибки я не могу избавиться от того, находятся в этих строках

scanf("%lf" ,&array_[rows][column]); 

и:

sum += array_[rows][column]; //formula for calculating sum 

Я изменил все мои переменные целых и программа работала как следует. Я просто не могу понять, как сделать эту работу прецизионными двойными числами. Заранее спасибо

Вот мой полный код и программа Объяснение:

/* 
============================================================================ 
Name  : 4.c 
Author  : 
Version  : 
Copyright : Your copyright notice 
Description : This program creates a 5 row 5 column 2d array. 
The array contains double precision numbers that are then passed to a function 
that adds them, returns the value. It is then displayed to the user 
============================================================================ 
*/ 
#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    setvbuf(stdout,NULL,_IONBF,0); 
    int array_[4][5]; 
    double rows; 
    double column; 
    double sum; 
    sum=0; 

    for(rows=0;rows<4;rows++) //Inputs users double precision numbers to 2d array 
    { 
     for(column=0;column<5;column++) 
     { 
      printf("\nEnter the values value for array position row %lf, column %lf\t" ,rows,column); 
      scanf("%d" ,&array_[rows][column]); 
     } 
    } 


    for(rows=0;rows<4;rows++) //double for loop calculates sum of 2d array 
    {      // first loop is for rows second for columns 
     for(column=0;column<5;column++) 
     { 
      sum += array_[rows][column]; //formula for calculating sum 
     } 
    } 

    printf("\nThe sum of this 2-D array is %lf /n" ,sum); //displays sum to user 

    system("pause"); 
return EXIT_SUCCESS; 
} 

второй вопрос: если у вас есть массив, но вы хотите, чтобы пользователь, чтобы указать, сколько строк и столбцов будет как бы вы инициализировать его?

+0

_ «если у вас есть массив, но вы хотите, чтобы пользователь указывал, сколько строк и столбцов будет таким, как вы его инициализировали?» _ Объявите его после чтения измерений (и используйте компилятор C99-компилятор). – Michael

ответ

0

Я думаю, вы получите ошибки из-за

double rows; 
double column; 

и массивы индексы должны быть целыми числами int так изменить его

int rows; 
int column; 

о втором вопросе, это может быть полезно http://www.geeksforgeeks.org/dynamically-allocate-2d-array-c/

0

Изменить

int array_[4][5]; 

в

double array_[4][5]; 

Потому что, если вы оставите Int, вы, в основном говорят, что вы хотите 2-D массив Int вместо двойной, и именно поэтому вы можете получить сообщение об ошибке. А также, как сказал @ whd, измените строки и столбцы на int.

Смежные вопросы