Форум программистов, компьютерный форум CyberForum.ru

Вывести на экран таблицу степеней двойки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
12345677
3 / 3 / 0
Регистрация: 06.12.2010
Сообщений: 30
16.12.2010, 01:00     Вывести на экран таблицу степеней двойки #1
помогите решить эти задачи на Turbo С++, где используются printf scanf и тд:
1)Вывести на экран таблицу степеней двойки: 2, где n изменяется от -к до 10. Операцию возведения целого числа в целую степень оформить в виде функции.(Пользователькие функции)
2)Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив. Найти среднее арифметическое элементов, расположенных в массиве до первого простого числа. Создать функции для вычисления среднего значения и определения простого числа. (работа с указателями).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 01:00     Вывести на экран таблицу степеней двойки
Посмотрите здесь:

Вывести на экран таблицу степеней C++
C++ Вывести на экран таблицу степеней двойки
C++ Сумма степеней двойки.
C++ Вывести таблицу степеней двойки
Оператор цикла. Вывести таблицу степеней двойки от нулевой до десятой C++
C++ является ли число суммой степеней двойки?
C++ Вывести таблицу степеней двойки от нулевой до десятой
C++ программа, которая выводит таблицу степеней двойки от нулевой до десятой

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
16.12.2010, 10:21     Вывести на экран таблицу степеней двойки #2
1)
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
#include <stdio.h>
 
float expi(int num, int deg)
{
    float result=1;
    int dir=deg<0?-1:1, i;
    for (i=0;i<deg*dir;i++)
        if (deg<0)
            result=1.0*result/num;
        else
            result*=1.0*num;
    return result;
}
 
int main(int argc, char *argv[])
{
    int k,i;
    printf("Enter k: ");
    scanf("%d",&k);
    if (k>0) k=0;
    for (i=k;i<10;i++)
        printf("2^%d=%g\n",i,expi(2,i));
    return 0;
}
Добавлено через 43 минуты
2)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define SIZE1 10
#define SIZE2 15
#define MIN -50
#define MAX 50
 
#define TRUE 1
#define FALSE 0
 
int prv(int n)
{
    register int d;
 
    for (d=2; d<=n/2; d++)
        if (n%d==0)
            return FALSE;
    return TRUE;
}
 
int *firstsimple(int *mass, int size)
{
    int *thisn=mass;
    while (thisn-mass<size)
        if (prv(*(thisn++)))
            break;
    if (thisn==mass)
        return NULL;
    return thisn-1;
}
 
float average(int *begin, int *end)
{
    int sum=0,den=0;
    while (begin<end)
    {
        sum+=*(begin++);
        den++;
    }
    if (den==0)
        return 0.0;
    return 1.0*sum/den;
}
 
void dvmp(int *mass,int *massr,int masssize,int *rsize)
{
    int i,j;
    for (i=0;i<masssize;i++)
    {
        if (mass[i]<=0)
            continue;
        int ok=TRUE;
        for (j=0;j<*rsize;j++)
            if (massr[j]==mass[i])
            {
                ok=FALSE;
                break;
            }
        if (ok)
            massr[(*rsize)++]=mass[i];
    }
}
 
int main(int argc, char *argv[])
{
    srand(time(0));
    int mass1[SIZE1],mass2[SIZE2],massr[SIZE1+SIZE2], i, slrm=0;
    printf("First array: \n");
    for (i=0;i<SIZE1;i++)
    {
        mass1[i]=rand()%(MAX-MIN)+MIN;
        printf("%d ",mass1[i]);
    }
    printf("\nSecond array: \n");
    for (i=0;i<SIZE2;i++)
    {
        mass2[i]=rand()%(MAX-MIN)+MIN;
        printf("%d ",mass2[i]);
    }
    printf("\nResult array:\n");
    dvmp(mass1,massr,SIZE1,&slrm);
    dvmp(mass2,massr,SIZE2,&slrm);
    for (i=0;i<slrm;i++)
        printf("%d ",massr[i]);
    printf("\nResult: %g",average(massr,firstsimple(massr,slrm)));
    return 0;
}
Во втором была пара мелких ошибочек, поэтому, если уже скопировали, перекопируйте.
Yandex
Объявления
16.12.2010, 10:21     Вывести на экран таблицу степеней двойки
Ответ Создать тему
Опции темы

Текущее время: 08:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru