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

Функция main - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
maest
78 / 33 / 2
Регистрация: 11.11.2010
Сообщений: 472
05.03.2011, 18:33     Функция main #1
В одномерном массиве, вводимом с клавиатуры и состоящем из 10 вещественных элементов, вычислить:
1) если задана опция -ko - количество отрицательных элементов массива;
2) если задана опция -s - сумму модулей элементов массива, расположенных после минимального по модулю элемента.
Если заданы опции -ko-s - выполнить оба задания;
если опции не заданы – вывести сообщение и не выполнять задания.

Часть задания осилил,а вот работу с функцией main нет.Помогите пожалуйста.

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
int main(int argc, char* argv[])
const int N=10;
int i,k=0,min,i_min=0,ot,s=0;
float massiv[N];    //описание массива
cout<<RUS("Введите 10 целых чисел\n");
for(i=0;i<N;i++) cin>>massiv[i];    //ввод массива
for(i=0;i<N;i++)    //вывод массива
cout<<"\n massiv["<<i<<"] = "<<massiv[i];   //вывод массива
 
     for(i=0;i<N;i++)
      if(massiv[i]<0) k++;
    cout<<"\n\n  k="<<k;
 
min=fabs(massiv[0]);
     for(int i=1;i<N;i++)
      if(fabs(massiv[i])<min)
    {
       min=massiv[i]; i_min=i;
    }
 
     for(int i=i_min+1;i<N;i++)
      s+=fabs(massiv[i]);
    cout<<"\n S="<<s;
    delete []massiv;
//****************************************************
cout<<RUS("\nНажмите любую клавишу для завершения программы ...\n");
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2011, 18:33     Функция main
Посмотрите здесь:

C++ функция main()
Функция main C++
C++ Функция main () {}
Функция main с аргументами C++
C++ Функция main() и ситаксические ошибки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.03.2011, 09:29     Функция main #2
C++
1
2
int main(int argc, char* argv[])
{
maest
78 / 33 / 2
Регистрация: 11.11.2010
Сообщений: 472
06.03.2011, 16:35  [ТС]     Функция main #3
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
int main(int argc, char* argv[])
{
И что это даёт?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.03.2011, 17:09     Функция main #4
maest, это увеличит шансы того, что твоя программа вообще скомпилируется. И что-то не вижу я в твоей программе обработки массива argv

Как-то так:
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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define CNT 10
#define GET(ARR, I) printf("Input " #ARR "[%02u]: ", (I) + 1), scanf("%lf", (ARR + (I)))
 
void usage(const char*);
size_t count(const double*, size_t);
double sum(const double*, size_t);
 
int main(int argc, char* argv[])
{
    size_t i, cntFlag = 0, sumFlag = 0;
    double array[CNT];
    
    if(argc == 1 || argc > 3)
    usage(*argv);
 
    for(i = 1; i < argc; ++i)
    {
    if(strcmp(argv[i], "-ko") == 0)
        cntFlag = 1;
    else if(strcmp(argv[i], "-s") == 0)
        sumFlag = 1;
    else
    {
        fprintf(stderr, "Unrecognized option: `%s'.\n", argv[i]);
        usage(*argv);
    }
    }
 
    for(i = 0; i < CNT; ++i)
    GET(array, i);
 
    if(cntFlag)
    printf("Count of negative elements: %u.\n", count(array, CNT));
 
    if(sumFlag)
    printf("Sum of magnitudes: %.2f.\n", sum(array, CNT));
        
    exit(0);
}
 
void usage(const char* name)
{
    fprintf(stderr,
        "Usage:\n%s -ko\n%s -s\n%s -ko -s.\n",
        name, name, name);
    exit(1);
}
 
size_t count(const double* a, size_t cnt)
{
    size_t i, c = 0;
    for(i = 0; i < cnt; ++i)
    if(a[i] < 0)
        ++c;
    return c;
}
 
double sum(const double* a, size_t cnt)
{
    size_t i, min;
    double s = 0;
    
    for(min = 0, i = 1; i < cnt; ++i)
    if(fabs(a[i]) < fabs(a[min]))
        min = i;
 
    for(++min; min < cnt; ++min)
    s += fabs(a[min]);
    return s;
}
maest
78 / 33 / 2
Регистрация: 11.11.2010
Сообщений: 472
06.03.2011, 18:08  [ТС]     Функция main #5
Программа полностью рабочая.Просто библиотеки не написал.Меня же интересует как реализовать запуск с параметрами,как в задании.
Yandex
Объявления
06.03.2011, 18:08     Функция main
Ответ Создать тему
Опции темы

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