Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [С++] Одномерный массив


Автор: Baltazar5000 13.2.2007, 16:57
[C++] Создать одномерный массив h[32], заполнить его, используя функцию random(), целыми числами в диапазоне от 20 до 90. Всем ответившим заранее большое спасибо.

Автор: Rockie 13.2.2007, 17:56
Baltazar5000, see msdn:
http://msdn2.microsoft.com/en-us/library/398ax69y(VS.80).aspx


Автор: Rodman 13.2.2007, 17:59
Код

#include <stdlib.h>
#include <conio.h>

int main()
{
randomize(); //Запускаем режим сл. чисел, без этого каждый раз при запуске числа будут одни и теже

int  Arr[32];

for (unsigned int i=0; i < 32; i++)
    Arr[i]  =  random(70)+20;    // Сл. числа от 0 до 99
       
for (unsigned int i=0; i < 32; i++)
    cout << Arr[i] << '\t';
cout << endl;

getch();
return 0;
}

Автор: Rockie 13.2.2007, 18:15
Rodman, 
Код

#include <vcl.h>

вырезал? smile 

Тогда нужно еще 
Код

using namespace std;

после инклудов


Автор: Baltazar5000 13.2.2007, 22:44
Что-то не пашет...

Автор: vinter 13.2.2007, 22:54
Код

#include <cstdlib>
#include <iostream>

using std::cout;
using std::cin;

int MyRandom(int a, int b) ;
 
int main()
{
    int h[32];
    srand((unsigned )time(NULL));
    for(int i = 0; i < 32; i++)
    {
        h[i] = MyRandom(20, 90);
        cout << h[i] << "\n";
    }
    cin.get();
}

int MyRandom(int a, int b)  
{
    return a + rand() % (b-a);
}

не проверял, но вроде все правильно

Автор: Baltazar5000 13.2.2007, 23:18
vinter не катит. Даже после исправления ошибки #include <cstdlib> на 
#include <stdlib.h> Помойму завтра я попал... smile 



Автор: vinter 14.2.2007, 00:24
Цитата
Даже после исправления ошибки #include <cstdlib> на 


это не ошибка.
что не катит?? какие ошибки??

поменяй верхушку 
Код
#include <cstdlib>
#include <iostream>
using std::cout;
using std::cin;
на
Код

#include <stdlib.h>
#include <iostream.h>
#include <time.h>

а вообще не плохо было бы указывать компилятор свой..

Автор: V.A.KeRneL 14.2.2007, 09:10
Rodman, я знаю, что Вы специалист по Pascal/Delphi, а не по C/C++, поэтому считаю своим догом сказать, что в стандартной библиотеке C функции, которые Вы «обозвали» randomize() и random() (следуя паскалевскому именованию, очевидно), называются srand() и rand(), соответственно.

Baltazar5000, тебе на чистом C чтоли надо, а не на «Плюсе»? Тогда так бы и указывал в заголовке!

Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define ARR_SIZE   32

int MyRandom(int a, int b);

int 
main(void) 
{ 
    int h[ARR_SIZE];  /* array */
    int i;  /* index, counter */
    
    srand((unsigned) time(NULL));
    
    for (i = 0; i < ARR_SIZE; ++i) { 
        h[i] = MyRandom(20, 90);
        printf("%d\n", h[i]);
    }
    
    return (0);
}

int 
MyRandom(int a, int b) 
{ 
    return (a + (rand()%(b - a)));
}


Автор: Baltazar5000 15.2.2007, 22:36
Всем большое спасибо, но я сделал это сам. Вот так(так как требовали):

Создал свои библиотеки.

WIND.h - Окно
Код

Wind(int x1, int y1, int x2, int y2, int z1, int z2)
    {    // построение тени цветом z1
        window(x1, y1, x2, y2);textbackground(z1); clrscr();
        // построениеокна для вывода значений цветом z2
        window(x1 - 2, y1 - 1, x2 - 2, y2 - 1);textbackground(z2); clrscr();
        return 0;
    }


pr19_i.h - Инициализация
Код

void setrandom(int h[], int size)
{
    int i;
    for(i=0;i<size;i++)
    h[i] = random(70)+20;
}


pr19_v.h - вывод на экран
Код

void get_mas(int h[], int size)
    {
        int i;
        for(i = 0; i < size; i++)
        {
            if(i%9==0)
            printf("\n   ");
            printf("%7d", h[i]);
        }
        printf("\n\n");
    }


pr19_p.h - вывод в файл
Код

int fil_mas(int h[], int size)
{
    int i;
    char*ch="../dat/pr19.dat";
    FILE*f;
    if((f=fopen(ch,"w"))==NULL)
    {
        fprintf(stderr,"Ошибка! Не удается открыть файл..\n");
        return 1;
    }
for(i=0;i<size;i++)
{
    fprintf(f,"%d\n", h[i]);
}
fclose(f);
return 0;
}

pr19.cpp - А вот и само задание.
Код

#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
// Подключение функций собственной библиотеки
#include"..\\h\\WIND.h"
#include"..\\h\\pr19_i.h" //Инициализация
#include"..\\h\\pr19_v.h" //Вывод на экран
#include"..\\h\\pr19_p.h" //Вывод в файл
int k;
int main()
{
    textmode(3);
    window(1,1,80,25);
    textattr(15 + (7 << 4));
    clrscr();
    Wind(1,1,80,25,0,9);
    Wind(15,3,65,6,8,3);
    gotoxy(12,2);
    cputs("Исходный массив");
    Wind(5,10,70,20,2,6);

    const int N=32;
    int h[N];randomize();

    k=32;
    setrandom(h,N);
    get_mas(h,N);
    fil_mas(h,N);


    getch();
    return 0;
}


Автор: V.A.KeRneL 15.2.2007, 23:56
Baltazar5000, сделал сам — молодец, заработал бонус для собственного моска. Но это ещё не всё, надо пометить топик как решённый, в дальнейшем поступать так со всеми своими темами и следовать правилам форума в полномобъёме! (см. верхушку страницы ^)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)