08.12.2011, 23:12. Просмотров 550. Ответов 8
Дан массив заполненный случайным образом нулями и единицами.
определить номер последнего нуля в массиве.
подсчитать количество нулей в массиве.
задачу решить с использование функций.
вот что написал но есть пара проблем.
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
| #include "stdafx.h"
#include <iostream>
using namespace std;
const int N=10;
int M[N];
int x1,x2;
void rd(int*T);
void rd2(int*T2);
int work(const int *K);
int work1(const int *Z);
int main ()
{
rd(M);
rd2(M);
x1=work (M);
x2=work1 (M);
return 0;
}
void rd(int*T)
{
for (int i=0; i<N;i++)
{M[i]=rand()%2;}
}
void rd2(int*T2)
{cout<<"masiv 4isel: ";
for (int i=0; i<N;i++)
{cout<<M[i];}
cout<<endl;
}
int work(const int *K)
{
int k;
for ( int i=N; i>0; i--)
if (M[i]==0) {k=i; break;}
cout<<"posledniy 0 pod nomerom = "<<k<<endl;
return x1;
}
int work1(const int *Z)
{int z=0;
for (int i=0;i<N;i++)
if (M[i]==0) z++;
cout<<"kol-vo nuley = "<<z<<endl;
return x2;
} |
|
первая проблема :
как каждый раз заполнять массив другими комбинациями ибо когда заполняю
C++ |
1
2
| for (int i=0; i<N;i++)
{M[i]=rand()%2;} |
|
постоянно одна комбинация.
2.
как определить номер последнего нуля.
когда делаю так
C++ |
1
2
3
4
5
6
7
8
9
10
| int work(const int *K)
{
int k;
for ( int i=N; i>0; i--)
if (M[i]==0) {k=i; break;}
cout<<"posledniy 0 pod nomerom = "<<k<<endl;
return x1;
} |
|
постоянно получаю ответ 10, даже если под 10 номером будет стоять не 0.