Тема: Ділення в Сі C

Поясніть будь ласка основні принципи ділення в C.

Білий Лунь

2

Re: Ділення в Сі C

Якщо 2 числа цілі, то і результат ділення буде цілий, причому остача відкидається.
5 / 2 = 2
9 / 5 = 1

Якщо хоча б одне з чисел з плаваючою комою, то і результат буде з плавачою комою:
5.0 / 2 = 2.5

Подякували: Ярослав, leofun012

3 Востаннє редагувалося Ярослав (18.10.2012 23:31:18)

Re: Ділення в Сі C

Отут зіткнувся із проблемою.

#include <stdio.h>
#include <conio.h>
#include <math.h>

main()
{
    float a;
    int c, i;
   !! 1-а помилка!! float matrix[15];
    a = i = 0;
    
    printf("Metod Gausa dlya rishennya System Liniynih rivnan' vitae vas!\n");
    printf("\nVvedit zna4ennya chleniv\n");

    for(i = 0; i < 12; i++)
        scanf("!!2-а помилка!!%22e", &matrix[i]);

//Step 1
/* Перевіряємо перший член на "0", якщо true - міняємо 2-ий і 1-ий рядок місцями*/
    if(matrix[0] == 0){
        for(i = 0; i < 4; i++){
            matrix[i+12] = matrix[i];
        }
        for(i = 4; i < 8; i++){
            matrix[i-4] = matrix[i];
        }
        for(i = 4; i < 8; i++){
            matrix[i] = matrix[i+8];
        }
    }
//Step 2
/* Перевіряємо перший член на "0", якщо true - міняємо 3-ий і 1-ий рядок місцями*/
    if(matrix[0] == 0){
        for(i = 0; i < 4; i++){
            matrix[i+12] = matrix[i];
        }
        for(i = 8; i < 12; i++){
            matrix[i-8] = matrix[i];
        }
        for(i = 8; i < 12; i++){
            matrix[i] = matrix[i+4];
        }
    }
//Step 3
// Робимо із першого члена другого рядка нуль
   !!3-я помилка!! if(matrix[4] != 0){
        a = - matrix[0] / matrix[4];
        for(i = 4; i < 8; i++)
            matrix[i] = matrix[i] * a + matrix[i-4];
    }
    if(matrix[4] != 0)
        printf("ERROR");

Виділені місця працюють некоректно:
1 - при використанні double код взагалі не працює очікуваним чином.
2 - я іще не дійшов по книзі до scanf просто поясніть який параметр тут потрібно використовувати
3 - цей шматок коду можна написати інакше?

Білий Лунь

4 Востаннє редагувалося Replace (18.10.2012 23:24:57)

Re: Ділення в Сі C

І де тут ділення?
Ок вже є.

Код особливо не дивився:
Можна так:

a = - (double) matrix[0] / matrix[4];
Подякували: Ярослав1

5 Востаннє редагувалося Ярослав (18.10.2012 23:34:08)

Re: Ділення в Сі C

Зараз спробую, а по іншим питанням можете щось порадити?
Ділення працює коректно.

Білий Лунь