Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 12
1

Как улучшить код?!

08.05.2012, 12:12. Просмотров 564. Ответов 5
Метки нет (Все метки)

Написал код к заданию: Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести 0, в противном случае вывести номер первого недопустимого элемента.
Код
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
    int n=10,i,y,k=0,z=0;
    int a[n];
    srand(8);
    for(i=0;i<n;i++)
      a[i]=rand()%10;
       printf("\n\nARRAY A\n\n");
       for(i=0;i<n;i++)
      printf("%8i",a[i]);

    for(i=0;i<n;i++)
     {
         if((a[i]>=1)&&(a[i]<=n))
           y=1;
         else
         {
          y=0;
           if(k==0)
            z=i;
            k=1;
         }
     }

     if (y==1)
      printf("\n\n0\n\n");
     else
     {
       printf("\nNe tot element ");
         printf("%i",z);
     }

     return 0;
}
Если есть ошибки или как то можно улучшить ее подскажите пожалуйста. Прога рабочая.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2012, 12:12
Ответы с готовыми решениями:

Как улучшить свой код и его структуру?
Изучил основы С++, сейчас активно изучаю SFML, Qt и глядя на код других людей я замечаю что мой код...

Как можно улучшить мой код? Калькулятор
Как можно улучшить мой код? Калькулятор #include &lt;iostream&gt; using namespace std; int main...

Классы. Ввод данных о книге и их отображение (как улучшить код?)
Изучаю классы. Сделал программку для класса card имеющего 2 метода - для введения данных о книге и...

Плохой калькулятор: как его сделать нормальным? (улучшить код)
Как его сделать нормальным ? :cry: #include &lt;functional&gt; #include &lt;iostream&gt; #include...

5
Форумчанин
Эксперт CЭксперт С++
8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
08.05.2012, 12:43 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
 
int main()
{
    const int N = 10;
    int x = 0;
    int arr[N] = {1, 7, 2, 9, 3, 8, 5, 4, 10, 6};
    std::sort(&arr[0], &arr[N]);
    for (int i=0; i < N; i++)
        if (arr[i] != i+1) 
        {
            x = i;
            break;
        }
    std::cout<< x;
    return 0;
}
0
0 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 12
08.05.2012, 14:21  [ТС] 3
А как записать количество элементов с таким же значением?
Вот написал код по нахождению максимального отклонения в меньшую сторону, а количество этих отклонений не знаю как...
Код
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (void)
{
    int n=20,i,j,f=0,max;
    printf("Enter razmer detali = ");
    scanf ("%i", &j);
    int a[n];
    srand(time(0));
    for(i=0;i<n;i++)
      a[i]=rand()%21+80;
       printf("\n\nARRAY A\n\n");
       for(i=0;i<n;i++)
        printf("%5i",a[i]);
    for(i=0;i<n;i++)
     if(a[i]<j)
     {
         if(f==0)
          {
              max=a[i];
              f=1;
          }
         if(a[i]<max)
          max=a[i];
     }
printf("\n\nMaximalnoe otklonenie = %i", max);


return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
08.05.2012, 14:26 4
Цитата Сообщение от xEk Посмотреть сообщение
А как записать количество элементов с таким же значением?
Вот написал код по нахождению максимального отклонения в меньшую сторону, а количество этих отклонений не знаю как...
Не понимаю чего ты хочешь. "Максимальное отклонение" от максимума есть минимум. Тебе нужно найти количество минимумов?
0
0 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 12
08.05.2012, 14:27  [ТС] 5
Да, нужно сколько таких элементов с этим отклонением в массиве.
0
Форумчанин
Эксперт CЭксперт С++
8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
08.05.2012, 14:40 6
Находит количество минимумов в массиве:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    int arr[] = {1, 0, 10, 5, 2, 7, 12, 62, 12, 19, -4, 2, -4, -4, 2, 5, 4};
    std::copy(&arr[0], &arr[ sizeof(arr) / sizeof(arr[0]) ], std::ostream_iterator<int>(std::cout, " "));
    std::cout<< std::endl<< (int)std::count(&arr[0], &arr[ sizeof(arr) / sizeof(arr[0]) ], *std::min_element (&arr[0], &arr[ sizeof(arr) / sizeof(arr[0]) ]));;
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2012, 14:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как улучшить следующий код программы? Поиск всех простых чисел до 1000
#include &lt;iostream&gt; #include &lt;cstring&gt; int main() { std::size_t size = 1000; bool...

Нужно улучшить код
Нужно улучшить код. 1)Отсортировать таблицу(если ввести Hello World,то буква &quot;l&quot; должна быть на 1...

Перегрузка функций - улучшить код
Решил сделать перегрузку функций, что то не могу сделать лучше подскажите как можно сделать лучше...

Помогите улучшить простой код
Задача: Из-за высокой цены бензина водители озабочены затратами топлива своих аытомобилей. Один...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.