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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xEk
0 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 12
#1

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

08.05.2012, 12:12. Просмотров 388. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как улучшить код?! (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
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
xEk
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
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
08.05.2012, 14:26 #4
Цитата Сообщение от xEk Посмотреть сообщение
А как записать количество элементов с таким же значением?
Вот написал код по нахождению максимального отклонения в меньшую сторону, а количество этих отклонений не знаю как...
Не понимаю чего ты хочешь. "Максимальное отклонение" от максимума есть минимум. Тебе нужно найти количество минимумов?
0
xEk
0 / 0 / 0
Регистрация: 24.03.2012
Сообщений: 12
08.05.2012, 14:27  [ТС] #5
Да, нужно сколько таких элементов с этим отклонением в массиве.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2012, 14:40
Привет! Вот еще темы с ответами:

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

Матрица порядка N (упростить/улучшить код) - C++
Задание: Получить целочисленную квадратную матрицу порядка N Можно ведь проще сделать, посоветуйте пожалуйста. int A; int N...

Покритикуйте и помогите улучшить код моей игры - C++
Здравствуйте, недавно начал писать игру и собственно пишу потихоньку, но не в этом суть, просто я только сегодня понял, что мой код может...

Парсер математических выражений - можно ли оптимизировать и улучшить код - C++
Добрый день возник следующий вопрос, в программировании не сильно большой гуру пошел на собеседование , дали тестовое задание парсер...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.05.2012, 14:40
Ответ Создать тему
Опции темы

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