2016-12-11 2 views
-1

То, что я до сих пор ...Ошибка преобразования целочисленного значения плавать в с


 #include <stdio.h> 
     #include <stdlib.h> 
     #include <time.h> 
     #define ROWS 23 
     #define COLS 78 


    int main() 
    { 


     srand(time(NULL)); 

     int arr[ROWS][COLS]; 
     int sum = 0, counter1 = 0; 
     int k; 
     int i; 

     for (i = 0; i < ROWS; i++) 
     { 
      for (k = 0; k < COLS; k++) 
      { 
       int j = rand() % 10; 

       arr[i][k] = j; 

       printf("%d", arr[i][k]); 

       sum += arr[i][k]; 

       counter1++; 

      } 
      printf("\n"); 
     } 

     printf("\n"); 

     printf("Average = %f\n", float(sum/counter1)); //Not getting exact decimal 

     printf("Total numbers = %d\n", counter1); 

     printf("Sum of all numbers = %d\n", sum); 

     system("pause"); 
    } 
//Guessing the float is not converting as it should 

Выход до сих пор ....

422620351595919054460397694388416319310552973446498175458548095262118564755749 
372438759420195802623062987655437952542263796363224469905714526364539742622586 
124057899145417666187341286327350448786294141128615529044980269471365598313616 
049149926286317172502475330649055931769733144700851693923585818341846097713250 
826490802265735183843662244505193942554706854717207204487697516652123593599812 
746605634674496934691593122520210519087830081107377133858638184877543092242563 
172193699659454833537193985400677695430588428833192355923118027599256651906912 
137220359907772463940456613321876957716810615732837946886780325557272201117024 
970243922687865367166306388461501128523059854106020838236007732376011146109340 
239699228705450117510917862089719947717228921040726908237444581851160698373585 
977683407031265082736130690889715335368791599705700863736964292214408266990418 
536416318005520152773513475211623892873091447652802755401011207564392549940648 
363921632561931849591970346553864295588487844510186065223062209484132581237554 
163065518327032754274153946192470922485557045255627009864269391575284952286729 
910378772792028085274954077343530447604501744264499511471498074681140863439500 
617676961625579079414287810415495010710519733811672377499905168756599387590803 
885768234776892368128405809649999684460473809170548180074483476110165080161362 
308905170626655925452893089531708914818032726022522429229062646282887593747734 
210270837200571461718554091036728525587376768397741678405601722794577171279012 
421649999013761899858408492974830996084297030747093760611147983343593657910519 
461743953198670501367758536958306703445033922711724727706025545309033925365602 
635580784707723652610577238350330553362131582484629421787969994692199573628406 
521293251392156351047950677006976709658442231650692040031419198232429972214834 

Average = 4.000000 

Total numbers = 1794 

Sum of all numbers = 8054 

Press any key to continue . . . 
+1

'float (sum/counter1)' -> '(float) sum/counter1' – BLUEPIXY

+0

Это сработало! Спасибо за помощь :) Я чувствую себя немой, не пытаясь этого lol. – Conco

+0

Любопытный: Почему код использует 'float', а не' double'? – chux

ответ

0

Вы можете форматировать число до двух знаков после запятой, помещая «.2f»:

printf("Average = %.2f\n", float(sum)/float(counter1)); 
Смежные вопросы