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

Первый отрицательный и минимальный эл массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление элементов, чтение, запись в Структурах http://www.cyberforum.ru/cpp-beginners/thread200469.html
Всем привет! Помогите дописать программу, с таки вот условием: Кредиты: ФИО заемщика, сумма, процентная ставка в год, срок кредита. Дополнить вывод информацией о сумме процентов, которые понадобится выплатить заемщику за срок кредита. Данные о предметной области представлены динамическим массивом структур, содержащими поля согласно варианту. Разработать программу, которая осуществляет...
C++ Обработка литерных величин (строки) Дело заключается в следуюющем: всего три задания=3 программы 1. Совпадают ли буквы в двух словах. 2.Вычеркните из слов совпадающие гласные буквы 3.Вставте между буквами в слове "_" Думаю 3 я сделаю сам (все надо написать в visual studio 2008+) Ребят помогите завтра экзамен надо ето сдать до него!! http://www.cyberforum.ru/cpp-beginners/thread200465.html
C++ Каким образом можно записать стек и очередь в дек
Прошу помощи. Есть программа создания стека и очереди с динамическим распределением памяти. Каким образом их можно записать в дек?Заранее спасибо # include <iostream.h> # include <process.h> # include <conio.h> struct liststruct { int numbers, numberq; struct liststruct *nexts, *nextq; };
C++ Теорема Виета
Суть, решить квадратичное уравнение теоремой виета, но мне кажется это идиотизм, потому как, если числа дробные - огромное кол-во комбинаций двух чисел надо проверить. Я вымутил что-то вроде такого алгоритма для целых коэффицентов. for(double i=-(fabs(a)+fabs(b)+fabs(c)); i<=fabs(a)+fabs(b)+fabs(c) ; i+=1) { for(double j=i; j<=fabs(a)+fabs(b)+fabs(c); j+=1) {...
C++ определение дня недели http://www.cyberforum.ru/cpp-beginners/thread200458.html
Написать программу, которая при вводе дня и месяца, определяет день недели. (год невисокосный)
C++ Вычисление собственных значений и собственных векторов матрицы. Метод скалярных произведений Курсовая работа!! Задание: "Вычисление собственных значений и собственных векторов матрицы. Метод скалярных произведений" Матрицу задаём произвольно, можно симметричную матрицу!! а дальше по заданию!! прога нужна на языке C++ очень срочно надо!!! Добавлено через 17 часов 24 минуты подробнее

Показать сообщение отдельно
romex
 Аватар для romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
01.12.2010, 11:45     Первый отрицательный и минимальный эл массива
А и здесь imin=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
25
26
27
28
29
30
31
32
33
34
void main()
{   # include <stdio.h>
    # include <conio.h>
    const int N1=100;
    int a[N1],i,*p,*imin,n,k;
    p=NULL;
    printf("\n Input n:");
    scanf("%d", &n);
    printf ("\n Input massiv:\n");
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    imin=a+1;
    for(i=1;i<=n;i++)
        if (a[i]<*imin)
            imin=a+i;
        
    for(i=1;i<=n;i++)
        if(a[i]<0) 
        {p=a+i;
        break;}
 
    if (p==NULL)
        printf("\n otricat net");
    else
    {k=*imin;
    *imin=*p;
    *p=k;}
 
       printf("\n massiv:");
    for(i=1;i<=n;i++)
       printf("\t %d",a[i]);
 
    getch();
}
Добавлено через 31 минуту
P.S. Не скажите где можно найти доходчиво объясняющие источники по указателям, а то у меня книги есть, но там все заумно написано и я не могу уловить главный смысл указателей
Что бы хорошо понять указатели ,как это ни плачевно , разумнее всего читать книги.

Главный смысл -
Каждый байт памяти пронумерован.
Каждому процессу выделяется его личная память, доступ к которой имеет только он, и никто другой, эту память он и использует для размещения переменных. Указатель - переменная(!), способная хранить адрес другой переменной, или ,грубо говоря, хранящая номер байта, содержащего начало другой переменной. Причем если этот байт находится вне памяти принадлежащей процессу, то попытка что-то сделать с ним приведет к ошибке сегментации (доступа).
Указатель задается вот так:
int *p;
на данном этапе значение p не определено, и операции *p и p[i] недопустимы!
Чтобы получить адрес переменной нужно использовать оператор & ;
int *p, a=4;
если мы сделаем так:
p=&a;
То мы сможем обращаться к a через операции *p и *p[0];
printf("%d",*p);
выдаст на экран 4.
так же если мы твердо уверены, что переменные b, c и d (|a|b|c|d|) стоят в памяти по порядку за переменной a, то обращение
p[1] или *(p+1) будет соответствовать переменной b
p[2] переменной с
*(p+3) переменной d
Нужно внимательно следить за указателями, так как их неправильное использование влечет за собой самые коварные и самые сложные для поиска ошибки.

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