Форум программистов, компьютерный форум CyberForum.ru

Деление на 0 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выбор IDE и литературы для начинающего http://www.cyberforum.ru/cpp-beginners/thread100293.html
Здраствуйте всем.Подскажите пожавуста где пишеца програма.Хочу ноучица писать програмы,но не знаю где писать.:(
C++ Как из первой строки удалить те буквы, которые есть во второй строке? Как из первой строки удалить те буквы, которые есть во второй строке??? http://www.cyberforum.ru/cpp-beginners/thread100292.html
C++ Вычислить высоту и биссектрису треугольника
Треугольник задан координатами вершин А (0; 0), В (11; 10) и С (-11; 12). Вычислить высоту и биссектрису. Помогите!!!!!!!((((((((
C++ Программа через структуру typedef struct
Люди помогите если несложно с программой, задание таково: 1.С клавиатуры вводятся пункты структуры - Студент: Матрикул - номер или стринг Име - стринг Личный код - состоящий из 11 цифр 2.С клавиатуры вводятся пункты структуры - Житель:
C++ Разработать программу, которая использует генерацию случайных чисел для создания предложений http://www.cyberforum.ru/cpp-beginners/thread100272.html
Помогите пожалуйста составить программу в С++. Задание такое: "Разработать программу, которая использует генерацию случайных чисел для создания предложений". Подробности: 1. использовать 4 массива-указателя (char) с названиями: "article" "noun" "verb" "preposition" 2. Программа должна создавать предложения случайно выбирая слова из каждого массива в следующем порядке: article, noun, verb,...
C++ Выделить слова из строки Помогите с задачкой : Необходимо вывести в алфавитном порядке те слова, последняя буква которых является согласной. Две строки. Максимальное количество символов в каждой - 80 #include<string.h> #include<iostream.h> #include<stdio.h> #pragma argsused int main(int argc, char* argv) { подробнее

Показать сообщение отдельно
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250

Деление на 0 - C++

01.03.2010, 19:04. Просмотров 1382. Ответов 8
Метки (Все метки)

задача:
Условие

Имеется N человек и матрица А размера N´N. Элемент A[i,j] матрицы равен 1, если человек i знаком с человеком j (если i-ый человек знает j-ого, то считаем, что и j-ый человек знает i-ого) и элемент A[i,j] матрицы равен 0, если i-ый человек не знаком с человеком j. Можно ли разбить людей на 2 группы, чтобы в каждой группе были только незнакомые люди.


Входные данные

Входные данные находятся в файле input.in.
· Первая срока содержит количество людей N.
· Затем идут N строк файла, которые задают матрицу знакомств A (каждой строке матрицы соответствует отдельная строка входного файла, числа в строках разделены пробелами).


Выходные данные

Выходные данные находятся в файле output.out.
Если можно разбить людей на две группы, чтобы в каждой группе были только незнакомые люди, то первая строка файла содержит сообщение “YES”, а вторая строка содержит номера людей, которые попали в одну из групп. Числа в строке разделяются одним пробелом и упорядочены по возрастанию.
Если нет, то единственная строка файла содержит сообщение “NO”.

Пример входных данных

4
0 1 0 1
1 0 1 1
0 1 0 1
1 1 1 0

Пример выходных данных

“NO”

результат теста : Ошибка Времени Выполнения(Деление на 0.)

я в упор не вижу в своем коде деление на 0;

подскажите где может быть такая засада

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <stdlib.h>
 
int compare(const void *a,const void *b)
{
return (*(_int16 *)a)-(*(_int16*)b);
}
 
 
int main()
{
FILE* fin,*fout;
fin=fopen("input.in", "r" );
fout=fopen("output.out", "w");
int n;
fscanf(fin,"%d",&n);
 
int dn=n+n+2;
fgetc(fin);
 
if(n==1){fputs("\"NO\"",fout); return 1;}
if(n==0){fputs("\"NO\"",fout); return 1;}
 
char **a=new char* [n];
 
for (int i=0;i<n;++i){
    a[i]=new char[dn+1];
    fgets(a[i],dn-1,fin);
    
    a[i][dn]=i+48;// or 49;
}
 
    int j=1;
    int delta=0,epsilon=n;
    for(int i=0;i<epsilon;++i)
    {
        int di=i+i;
 
        while(j<epsilon)
        {
                if(a[j][di]<a[j-1][di])
                    {
                        char *temp=a[j-1];
                        a[j-1]=a[j];
                        a[j]=temp;
                        if(j>1)
                        j-=2;
                                            }
                j++;
        }
 
 
        for (int ept=0;ept<epsilon;ept++)
        {if(a[ept][di]=='0')++delta;}
        epsilon=delta;
        delta=0;
        j=1;
    }
 
bool group=true;
 
for(int j=epsilon+epsilon;j<dn-2;j+=2)
    for(int i=epsilon;i<n;i++)
        if(a[i][j]!='0')group=false;
 
if(!group){fputs("\"NO\"\n",fout); return 0;}
 
 
char *c=new char[epsilon+epsilon+1];
for(int i=0;i<epsilon;i++)
{c[i+i]=a[i][dn];
c[i+i+1]=' ';
}
c[epsilon+epsilon]=0;
qsort(c,epsilon,2,compare);
fputs("\"YES\"\n",fout);
fputs(c,fout);
return 2;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru