День в истории - 20 июля

2006 год. Судья 30 инстанции города Барселоны Роберто Гарсия Кенисерос постановил немедленно провести президентские выборы, как реакция на протест бывшего члена совета директоров Жоана Торне. Управляющая комиссия,
Читать далее
Со дня этого события прошло 19 лет

 

Вернуться   Форум > Разное > Кулес > Hi-tech
Имя
Пароль

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.03.2012 в 21:05 Цитата выделенного #81
Catala
Ленивый webmaster
Аватар для Catala
 
Регистрация: 28.04.2006
Сообщения: 10,312
Сказал(а) спасибо: 317
Поблагодарили: 15,021 раз(а) в 5,206 сообщениях
Деньги: 878076$
 
По умолчанию

PHP код:
#include <conio.h>
#include <stdio.h>
void main()
{

    
int x
 
    for(
10<= 99x++)
    {
        if (((
10) * (10) + (10) * (10)) % 13 == 0)
        {
            
printf("x = %d\n"x);
        }
    }
     
    
getch();

__________________
Не ошибается тот - кто не думает.(C)RIVALDO
Offline   Ответить с цитированием
Сказал(а) спасибо:
К@t@LoNeЦ (15.03.2012)
Старый 16.03.2012 в 18:42 Цитата выделенного #82
К@t@LoNeЦ
Ells ho tenen tot...
pero aixo no es suficient
Аватар для К@t@LoNeЦ
 
Регистрация: 12.11.2009
Сообщения: 1,527
Сказал(а) спасибо: 2,161
Поблагодарили: 2,099 раз(а) в 689 сообщениях
Деньги: 2766$
 
По умолчанию

Вот еще проблема с задачей (рс.1)

Т.е, проще говоря, если я ввиду n=5 , то вот что должно получиться (рс.2)

Как это мне записать?

заготовка и ошибка (рс.2)
Изображения
Тип файла: jpg 1.jpg (29.0 Кбайт, 14 просмотров)
Тип файла: jpg 2.jpg (95.0 Кбайт, 7 просмотров)
__________________

Последний раз редактировалось К@t@LoNeЦ, 16.03.2012 в 18:53.
Offline   Ответить с цитированием
Старый 16.03.2012 в 18:53 Цитата выделенного #83
Catala
Ленивый webmaster
Аватар для Catala
 
Регистрация: 28.04.2006
Сообщения: 10,312
Сказал(а) спасибо: 317
Поблагодарили: 15,021 раз(а) в 5,206 сообщениях
Деньги: 878076$
 
По умолчанию

PHP код:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>

void main()
{
    
float result 0;
    
int i;
    
int n;

    
printf("Input a number: ");
    
scanf("%d", &n);

    for(
0ni++)
    {
        
result sqrt(result 2);
    }

    
printf("The result is %f"result);

    
getch();

Offline   Ответить с цитированием
Сказал(а) спасибо:
К@t@LoNeЦ (16.03.2012)
Старый 16.03.2012 в 18:57 Цитата выделенного #84
К@t@LoNeЦ
Ells ho tenen tot...
pero aixo no es suficient
Аватар для К@t@LoNeЦ
 
Регистрация: 12.11.2009
Сообщения: 1,527
Сказал(а) спасибо: 2,161
Поблагодарили: 2,099 раз(а) в 689 сообщениях
Деньги: 2766$
 
По умолчанию

Catala, уф , спасибо огромное, мне бы тока одной строчки хватило
Offline   Ответить с цитированием
Старый 13.04.2012 в 18:43 Цитата выделенного #85
К@t@LoNeЦ
Ells ho tenen tot...
pero aixo no es suficient
Аватар для К@t@LoNeЦ
 
Регистрация: 12.11.2009
Сообщения: 1,527
Сказал(а) спасибо: 2,161
Поблагодарили: 2,099 раз(а) в 689 сообщениях
Деньги: 2766$
 
По умолчанию

Дан массив целых чисел размерности n. Все элементы массива с четными номерами, предшествующие первому максимальному элементу, умножить на максимальный

Предпоследний цикл считает до бесконечности.
В чем ошибка?

PHP код:
#include <conio.h>
#include <math.h>
#include <stdio.h>
void main()
{
    
    
int max,n,k,i;
    
printf("vvedite razmernost ");
    
scanf_s("%d",&n);
    
int *mass = new int[n];
    
delete[]mass;
    

    for (
i=1;i<=n;i++)   
    {
          
printf("vveite chislo ");
          
scanf_s("%d",&mass[i]);
    }

    
max=mass[1];
    
k=1;
    
    for (
i=2;i<=n;i++)
      {
          if (
mass[i]>max)
             { 
                 
max=mass[i];
                 
k=i;
             }
          
      }

    for (
i=1;1<=k;i++)
    {
        if (
32000%i==0)
             {
                 
mass[i]=mass[i]*max;
             }
    }

    for (
i=1;1<=n;i++)
    {
        
printf("mass[i] =%lf",mass[i]);
    }

    
getch();

Offline   Ответить с цитированием
Старый 13.04.2012 в 18:55 Цитата выделенного #86
GERONIMO
Аватар для GERONIMO
 
Регистрация: 12.07.2009
Сообщения: 2,422
Сказал(а) спасибо: 1,409
Поблагодарили: 3,018 раз(а) в 1,099 сообщениях
Деньги: 63077$
 
По умолчанию

Цитата:
Сообщение от К@t@LoNeЦ
printf("vveite*chislo*");

Я ничего не смыслю в программировании, но тут ты пропустил букву :"d"
__________________
Мой отец рассказывал мне о Марадоне, а я своему сыну буду рассказывать о Месси" (с)

Если игроки вдруг начнут понимать, что хочет от них Гвардиола в мире наступит всеобщая гармония, а футбол можно будет отменять (c)
Offline   Ответить с цитированием
Старый 13.04.2012 в 19:06 Цитата выделенного #87
Catala
Ленивый webmaster
Аватар для Catala
 
Регистрация: 28.04.2006
Сообщения: 10,312
Сказал(а) спасибо: 317
Поблагодарили: 15,021 раз(а) в 5,206 сообщениях
Деньги: 878076$
 
По умолчанию

Во-первых, массивы идут от 0 до n-1. Обращение к элементу n должно вызывать access violation. Во-вторых, память освобождается в самом начале программы, то есть вся работа ведется без выделенной памяти. Это еще до того, как вникнуть в алгоритм, который выглядит странно. Как собственно и задача. Что такое "первый максимальный элемент"? Если есть несколько одинаковых элементов, которые являются максимумом, нужен с минимальным индексом?
Offline   Ответить с цитированием
Сказал(а) спасибо:
К@t@LoNeЦ (13.04.2012)
Старый 13.04.2012 в 19:17 Цитата выделенного #88
К@t@LoNeЦ
Ells ho tenen tot...
pero aixo no es suficient
Аватар для К@t@LoNeЦ
 
Регистрация: 12.11.2009
Сообщения: 1,527
Сказал(а) спасибо: 2,161
Поблагодарили: 2,099 раз(а) в 689 сообщениях
Деньги: 2766$
 
По умолчанию

Цитата:
Сообщение от Catala
Во-первых, массивы идут от 0 до n-1.
Необязательно.Я ввожу, начиная с mass[1].Ведь в for сначала идет присвоение элемента ,а потом увеличение номера элемента

Цитата:
Сообщение от Catala
Обращение к элементу n должно вызывать access violation.
В первый раз слышу.Всегда работал без него.

Цитата:
Сообщение от Catala
Это еще до того, как вникнуть в алгоритм, который выглядит странно.
какой именно? предпоследний?



В предпоследнем цикле сначала было "if (i%2==0)",что правильнее при определении четности\нечетности, но проблема в том, что i должно быть целочисленным, поэтому решил пойти от обратного:
по идее если i - четное, то он должен делить без остатка 32000 ( к примеру)

Последний раз редактировалось К@t@LoNeЦ, 13.04.2012 в 19:24.
Offline   Ответить с цитированием
Старый 13.04.2012 в 19:28 Цитата выделенного #89
Catala
Ленивый webmaster
Аватар для Catala
 
Регистрация: 28.04.2006
Сообщения: 10,312
Сказал(а) спасибо: 317
Поблагодарили: 15,021 раз(а) в 5,206 сообщениях
Деньги: 878076$
 
По умолчанию

Цитата:
Сообщение от К@t@LoNeЦ
Необязательно.Я ввожу, начиная с mass[1].Ведь в for сначала идет присвоение элемента ,а потом увеличение номера элемента
Интересно вас учат. Объясняю. Допустим массив начинается в адресе 1000. Когда ты делаешь new int[5] операционная система выделяет тебе сплошной блок памяти размеров в 20 байт(int 4 байта). mass[i] это то же самое, что *(mass + (4 * i)). Поэтому обращение к mass[5] это обращение к адресу 1020, которое тебе не принадлежит. И не имеет никакого значения как ты вводишь элементы. Ввод элементов это не выделение памяти, а запись данных в уже выделенную. В C всегда массив начинается с нуля. Если ты хочешь использовать n элементов начиная с 1, то в new нужно давать n+1. Ты же вообще делаешь в начале delete, что освобождает память и для тебя она не существует, а потом обращаешься к памяти которая не была твоей даже до этого освобождения.

Переменная k тебе не нужна. В условии второго пробега достаточно mass[i] < max. Ну и у тебя слева в условии цикла 1 вместо i. 32000 очень надеюсь нужно только для проверки.
Offline   Ответить с цитированием
Сказал(а) спасибо:
К@t@LoNeЦ (13.04.2012)
Старый 13.04.2012 в 19:43 Цитата выделенного #90
К@t@LoNeЦ
Ells ho tenen tot...
pero aixo no es suficient
Аватар для К@t@LoNeЦ
 
Регистрация: 12.11.2009
Сообщения: 1,527
Сказал(а) спасибо: 2,161
Поблагодарили: 2,099 раз(а) в 689 сообщениях
Деньги: 2766$
 
По умолчанию

Цитата:
Сообщение от Catala
Переменная k тебе не нужна.
как мне тогда без k номер максимального элемента то узнать?

Цитата:
Сообщение от Catala
Ну и у тебя слева в условии цикла 1 вместо i
не понял, где именно?


Цитата:
Сообщение от Catala
Интересно вас учат. Объясняю. Допустим массив начинается в адресе 1000. Когда ты делаешь new int[5] операционная система выделяет тебе сплошной блок памяти размеров в 20 байт(int 4 байта). mass[i] это то же самое, что *(mass + (4 * i)). Поэтому обращение к mass[5] это обращение к адресу 1020, которое тебе не принадлежит. И не имеет никакого значения как ты вводишь элементы.

int *mass = new int[n];
delete[]mass;

может и так, только нам пока так говорят заполнять динаический массив
Offline   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.
Быстрый переход



20 июля 2025 года. Воскресенье - 17:43 (Часовой пояс GMT +4).