Показать сообщение отдельно
Старый 22.02.2012, 21:23 ↑ #211
35102005 Мужской
Называейте меня просто
ГУРУ эго-форума
 
Аватар для 35102005
 
Регистрация: 26.11.2005
Адрес: в квартире
Сообщений: 1,918
35102005 отключил(а) отображение уровня репутации
Отправить сообщение для 35102005 с помощью ICQ Отправить сообщение для 35102005 с помощью Skype™
По умолчанию Re: Уроки программирования на C++ для начинающих

Здрасте, подскажите в Си оператор break во вложенном цикле может обрывать не только свой цикл, но и "верхний"? Гугл говорит, что нет, но может есть какие-либо заковырки? компилятор MS VS 2008.



Код:
do
    {
    printf("\nvxod\n");
    for (int i=0; i<4;i++)
        {
        X[i]=B1[i];
        for (int j=0;j<4;j++)
            X[i]=X[i]+A1[i][j]*Xn[j];//само приближенное вычисление
        }
    printf("\n");
    for (int k=0;k<4;k++)
        {
        if (abs(X[k]-Xn[k])>0.0000001) //проверка погрешности; 
            {
            f=0;
            for (int l=0;l<4;l++)
                {
                Xn[l]=X[l];//обновляются значени Xn(k) если не достигнута нужная точность
                }
            printf("\nnet\n");
            break;//обрывает не только свой цикл но и do while???
            }
        else {f=1; printf("\nvixod\n");}
        }
    }
    while (f=0);


в этом куске кода по идее перед выходом из цикла do while должно быть четыре раза написано "vixod". Но не пишет ни разу. Один раз vxod, потом net и все, продолжается то что после do while.

Прошу не критиковать оформление и тп (всякие штуки типа vxod, vvixod, net сделал для проверки какие места обрабатываются, а какие нет), сначала хочу сам алгоритм наладить, а потом заняться оформление и тд
__________________

35102005 вне форума   Ответить с цитированием