Тема: Ділення в Сі C
Поясніть будь ласка основні принципи ділення в C.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C → Ділення в Сі C
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Якщо 2 числа цілі, то і результат ділення буде цілий, причому остача відкидається.
5 / 2 = 2
9 / 5 = 1
Якщо хоча б одне з чисел з плаваючою комою, то і результат буде з плавачою комою:
5.0 / 2 = 2.5
Отут зіткнувся із проблемою.
#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 - цей шматок коду можна написати інакше?
І де тут ділення?
Ок вже є.
Код особливо не дивився:
Можна так:
a = - (double) matrix[0] / matrix[4];
Зараз спробую, а по іншим питанням можете щось порадити?
Ділення працює коректно.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися