Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2009, 17:42   #1
Ardred
Новичок
Джуниор
 
Регистрация: 25.01.2009
Сообщений: 2
По умолчанию Помогите пожалуйста найти ошибки. Заранее спасибо.

Доброго времени суток.
Начал учиться програмировать на С. Столкнулся с некоторыми проблемами при выполнении некоторых задач.
Не прошу делать за меня никакую работу, прошу просто посмотреть и помочь советом начинающему.
Задача банальна. Надо ввести с клавиатуры прямоугольную матрицу и поменять местами два ряда с наибольшей и наименьшей сумой элементов.
Пробовал сделать так:
Код:
#include <stdio.h>

#define colonku 4
#define stroku 3

int main(void)
{
    int n, n1;
    float max, min, sum1=0, sum2=0, sum3=0, sum4=0;
    float matr [colonku] [stroku];

    printf("Vvedite matricy %d na %d elementov:\n", colonku, stroku);

    // ввод массива

    for (n = 0; n < colonku; n++)
        {
            for (n1=0; n1 < stroku; n1++)
                scanf("%f", &matr [n] [n1]);
            printf("\n");
        };

    //подсчет сумы елементов в рядах

    for (n = 0; n < colonku; n++)
        {
            for (n1=0; n1 < stroku; n1++)
                 {
                     if (n=0)
                         sum1=sum1+matr [n] [n1];
                     if (n=1)
                         sum2=sum2+matr [n] [n1];
                     if (n=2)
                         sum3=sum3+matr [n] [n1];
                     if (n=3)
                         sum4=sum4+matr [n] [n1];
                 }
        };

    //определение самой маленькой и самой большой сумы.
    max=sum1;
    if (sum2 > max)
        max=sum2;
    if (sum3 > max)
        max=sum3;
    if (sum4 > max)
        max=sum4;

    max=sum1 ? min=sum2 : min=sum1;
    if (sum1 < min)
        min=sum1;
    if (sum2 < min)
        min=sum2;
    if (sum3 < min)
        min=sum3;
    if (sum4 < min)
        min=sum4;

// а тут решил проверить, все ли правильно сделал. И вывести для этого результаты.

    for (n = 0; n < colonku; n++)
        {
            for (n1=0; n1 < stroku; n1++)
                 printf("%f   ,",matr [n] [n1]);
            printf("\n");
        }
   printf("\n %4.2f, %4.2f, %4.2f, %4.2f",sum1,sum2,sum3,sum4);
   printf("\n %4.2f, %4.2f",max,min);

   getchar();
   getchar();

   return 0;
}
Откомпилировал. И столкнулся с проблемой: программа не считает суму первого ряда. постоянно ноль отображается.
Помогите пожалуйста. В чем заключаеться ошибка? как ее исправить, и как избежать в дальнейшем?
Извините, если вещь елементарная. Занялся недавно, опыта мало. Может что-то в книгах пропустил.
Есть еще одна проблема:
Задача: Для введенного предложения надо посчитать процент использования гласных букв.
Начал с организации счетчика "букаФ"=) Решил проверить, правильно ли считает. Но тут снова попа:
букву "а" некоректно считает. Если вообще не вводишь отображает 16. одна, две буквы в предлодении - вообще мусор типа 12,13, 22 и т.д. Закономерности никакой нету. только стабильное 16 при отсутствии буквы.
Код:
#include <stdio.h>

#define max 150

int main(void)
{
    int n, c1=0, c2=0, c3=0, c4=0, c5=0, c6=0;
    char sent[max];

    printf("Vvedite predlojenie:\n");
    gets(sent);

    for(n=0;n!=max;n++)
        {
         if (sent[n]=='a')
             c1=c1+1;
         if (sent[n]=='e')
             c2=c2+1;
         if (sent[n]=='y')
             c3=c3+1;
         if (sent[n]=='u')
                                  c4=c4+1;
         if (sent[n]=='i')
             c5=c5+1;
         if (sent[n]=='o')
             c6=c6+1;
        };

    printf("%d,%d,%d,%d,%d,%d",c1,c2,c3,c4,c5,c6);

    getchar();
    getchar();
    return 0;
}
Что самое странное, остальные считает нормально. Думал что первое определение некоректное, переставлял, результат тот же.
Среда разработки - Code Blocks.
Буду очень благодарен за помощь.
Спасибо наперед.
з.ы. не забывайте, что все мы были маленькими и неопытными) + извиняюсь за "очепятки". Живу в Украине, с русской граматикой проблемы могут быть.

Последний раз редактировалось MaTBeu; 25.01.2009 в 19:11.
Ardred вне форума Ответить с цитированием
Старый 25.01.2009, 17:53   #2
Ardred
Новичок
Джуниор
 
Регистрация: 25.01.2009
Сообщений: 2
По умолчанию

исполняется так:



и так:

Ardred вне форума Ответить с цитированием
Старый 25.01.2009, 18:18   #3
Dvijochnyk
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 21
По умолчанию

В первой задаче у тебя неправильно объявлен массив надо так: matr [stroku][colonku] ;и дальше всё у тебя идет наперекосяк и еще тебе надо запомнить индекс в строках с максималаным и мин суммой елементов))) удачи

Модератор: можно писать и на украинском

якщо щось буде не ясно стукай 448661900 допоможем))

Последний раз редактировалось MaTBeu; 25.01.2009 в 19:14.
Dvijochnyk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить задачу. Заранее спасибо Liver Помощь студентам 1 20.12.2008 09:47
помогите пожалуйста решить 2 задачи,заранее спасибо Анютка...... Паскаль, Turbo Pascal, PascalABC.NET 0 24.11.2008 11:21
Помогите пожалуйста решить одну задачку в Паскале...Заранее спасибо VisTBacK Помощь студентам 2 29.09.2008 14:57
Привет всем!Помогите пожалуйста с сортировкой файла в Delphi, заранее спасибо Taisja Помощь студентам 2 01.06.2008 15:42