Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с ошибкой, Прога на Си выводит неправильные данные 
V
    Опции темы
lllaman
Дата 4.7.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



Плиз, знающие люди, помогите !!!  smile  Написал прогу на С (если это можно назвать прогой), и не могу понять чё за трабла. Прога выводит заданное кол-во (например 10) случайных чисел от 0 до 9  в строку и так происходит 8 раз. А потом из каждой строки эти цифры загоняются в массив b[], т.е каждая строка в левом столбце должна загнаться соответствующий элемент массива b[] (первая строка в первый элемент b[0], вторая в b[1] и т.д.). Так вот в левом столбце всё в порядке, а в правом, где выводится поэлементно массив b[] происходит какая-то [censored 6] фигня и b[0]=-1 , а начиная с b[4] выводятся вообще грамадные числа с нулями на конце. Помогите решить этот вопрос, плиз, три дня уже парюсь и не могу понять  smile 

 Вот исходник:  


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main ()
{
  int i,j,n,k;
  double a[100],b[100];
  /* initialize random generator */
  srand ( time(NULL) );
  printf("\n BBEDUTE n=");
  scanf("%d",&n);
  for(j=0;j<8;j++)
  {
     k=n-1;
     printf("\n                 ");
     for (i=0;i<n;)
      { 
        a[i]=rand()%10;
        if (a[0]==0) continue;
        printf("%1.0f ",a[i]);
        b[j]+=a[i]*pow(10,k);
        i++;
        k--;                
      }
      printf("  I    b[%d]=%.0f\n                                       I",j+1,b[j]);
  }
   printf("\n");
   scanf("%d");
   return 0;

PM MAIL   Вверх
mostly
Дата 4.7.2006, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



Вот здесь
            b[j]+=a[i]*pow(10,k);

b[j] не определено, перед первым циклом обнулите массив b:

    for(i=0;i<8;i++)b[i]=0; 
PM MAIL   Вверх
lllaman
Дата 4.7.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.7.2006

Репутация: нет
Всего: нет



 smile Эврика !!! Огромное спасибо. Получилось, заработало ! Только тогда я не понимаю, почему массив a[] не надо в начале обнулять, а b[] надо ???  smile  
PM MAIL   Вверх
mostly
Дата 5.7.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 29.3.2006

Репутация: нет
Всего: нет



Потому что массив b[] при инициализации складывается со своим начальным значением:

b[j]+=a[i]*pow(10,k); 
          == 
b[j]=b[j]+a[i]*pow(10,k);

а оно было не определено в правой части выражения, а при инициализации массива a[] в правой части всё определено:

a[i]=rand()%10; 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.