Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Помогите разобраться с ошибкой |
Автор: lllaman 4.7.2006, 22:58 |
Плиз, знающие люди, помогите !!! ![]() ![]() Вот исходник: #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; } |
Автор: mostly 4.7.2006, 23:24 |
Вот здесь b[j]+=a[i]*pow(10,k); b[j] не определено, перед первым циклом обнулите массив b: for(i=0;i<8;i++)b[i]=0; |
Автор: lllaman 4.7.2006, 23:33 |
![]() ![]() |
Автор: mostly 5.7.2006, 00:51 |
Потому что массив b[] при инициализации складывается со своим начальным значением: b[j]+=a[i]*pow(10,k); == b[j]=b[j]+a[i]*pow(10,k); а оно было не определено в правой части выражения, а при инициализации массива a[] в правой части всё определено: a[i]=rand()%10; |