Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 22:59   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию С, проверьте код, как прекратить ввод последовательности?

Здравствуйте! Ребят, выручайте, помогите проверить мое решение контрольной работы по программированию, код есть, не могу просто остановить последовательность, вот код первой задачи:


Задача 1:
Код:
#include <stdio.h>
int main()
{

int posl; //элемент последовательности
int count_otr=0;
int count_pol=0;//счетчик

do
{

scanf("%d",&posl);
//если кратно 5, то увелич.счетчик
if posl<=0 count_otr+=(posl%5);
else
count_pol+=(posl%5);

}
while (//как остановить ввод?);

if count_pol==count_otr printf("ODINAKOVO");
if count_pol>count_otr printf("POLOJIT BOLSHE, VSEGO: %d ",count_pol);
else
printf("OTRIC Bolshe, VSEGO: %d ",count_otr);
return 0;
}



Задача 2, вроде правильно, но не уверен

Код:
#include <stdio.h>
int main()
{

const int n=150;
int a[n]; // int a[n],b[n], так можно писать?
int b[n];
int j=1;

for (int i=0,i<n,i++)
{
a[i]=i+1;
b[i]=a[i]*10;
}


for (int i=0,i<n,i++)
{
a[i]=a[i]+j;
b[i]=b[i]*j;
j++;
}
return 0
}
Помогите, пожалуйста, задача на скрине, заранее спасибо!

з.ы. Сорь если раздел не тот, возможно надо было обратиться в "помощь студентам", так что не судите строго
Изображения
Тип файла: jpg eYsuzkKkaGg.jpg (45.0 Кб, 174 просмотров)
from dark to light)

Последний раз редактировалось Алексей_2012; 31.10.2014 в 23:25.
Алексей_2012 вне форума Ответить с цитированием
Старый 31.10.2014, 23:44   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Задача 2, вроде правильно, но не уверен
Что-то странный код.
По-моему там речь о
Код:
a[i] = a[i] + b[i];
Ну и для b * вместо +.
Только видимо нужно еще в другой массив сначала скопировать перед вычислением первого (сумма), иначе на втором (произведение) А уже измененный будет.

И про форматирование кода слышал? Хотя бы CTRL+A, CTRL+K, CTRL+F для отступов если Visual Studio.
А то придет min@y со своим бонусом http://programmersforum.ru/showpost....02&postcount=6
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.10.2014, 23:44   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

1)
Код:
int neg = 0, pos = 0, a;
while (scanf("%d", &a) == 1) {
    pos += (a > 0 && a % 5 == 0);
    neg += (a < 0 && a % 5 == 0);
}
И в if'ах условия нужно писать в скобках.

2)
Код:
for (int i = 0; i < n; ++i) {
    int tmp = a[i];
    a[i] = a[i] + b[i];
    b[i] = tmp * b[i];
}
Или:
Код:
for (int i = 0; i < n; ++i) {
    int tmp = a[i];
    a[i] += b[i];
    b[i] *= tmp;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.10.2014 в 23:49.
BDA на форуме Ответить с цитированием
Старый 01.11.2014, 00:01   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ребят, спасибо, у нас все через QT пишется, скачал торрент, но там почему-то только с++ поддерживается, поэтому пишу на листочках :D, на скрине все что в QT, нужно создать консольное С приложение, так что опробовать код смогу только в лабораторке

поясните это, пожалуйста, я решил использовать цикл с постусловием, чтоб ввод данных осуществлялся хотя бы один раз, и, как я понял, последовательность прекращает ввод при условии если ввели А (просто мы так никогда не писали и данный код мне не очень понятен)

Код:
int neg = 0, pos = 0, a;
while (scanf("%d", &a) == 1) {
    pos += (a > 0 && a % 5 == 0); // если а больше 0 и кратно 5
    neg += (a < 0 && a % 5 == 0); // если а меньше 0 и кратно 5...?))
}

Цитата:
По-моему там речь о


Код:
a[i] = a[i] + b[i];
да, спасибо, а у меня в А массиве получилось бы просто что каждое число на единицу увеличивалось бы, потом на следующем этапе на двойку и т.п., в общем спасибо что поправили, а скомпилировать и проверить не дано , пока :D
Изображения
Тип файла: jpg Безымянный.jpg (18.8 Кб, 119 просмотров)
from dark to light)

Последний раз редактировалось Алексей_2012; 01.11.2014 в 00:07.
Алексей_2012 вне форума Ответить с цитированием
Старый 01.11.2014, 00:06   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какой еще торент? http://qt-project.org/downloads

Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 01.11.2014 в 00:09.
Alex11223 вне форума Ответить с цитированием
Старый 01.11.2014, 00:42   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

while (scanf("%d", &a) == 1) - scanf возвращает количество успешно считанных полей. Считывание происходит, пока не закончится входной поток. Чтобы закончить ввод, нужно, скорее всего, нажать Ctrl+Z и Enter (чтобы программа начала считывать данные).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 01.11.2014, 00:42   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ребят, почему-то не запускается консольное приложение, хотя сборка сборка проходит нормально, вот что пишется:

"
00:45:29: Выполняются этапы для проекта untitled...
00:45:29: Запускается: «C:\Qt\5.3\mingw482_32\bin\qmake.ex e» C:\Users\Алексей\untitled\untitled. pro -r -spec win32-g++ "CONFIG+=debug"
Cannot find file: C:\Users\Алексей\untitled\untitled. pro.
00:45:29: Процесс «C:\Qt\5.3\mingw482_32\bin\qmake.ex e» завершился с кодом 2.
Ошибка при сборке/установке проекта untitled (комплект: Desktop Qt 5.3 MinGW 32bit)
Во время выполнения этапа «qmake»
00:45:29: Прошло времени: 00:00."

с делфи проще было :D
Изображения
Тип файла: jpg Безымянный.jpg (24.5 Кб, 118 просмотров)
from dark to light)

Последний раз редактировалось Алексей_2012; 01.11.2014 в 00:46.
Алексей_2012 вне форума Ответить с цитированием
Старый 01.11.2014, 00:59   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Гугл вроде сказал, что Qt не любит русские буквы в пути к проекту.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.11.2014, 01:14   #9
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Спасибо! ) Гугл прав был, а вот с массивом что-то не так прошло, вот с умножением+вывод

Код:
#include <QCoreApplication>
#include <stdio.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    const int n=150;
   int a1[n],b[n];

    int j=1;

    for (int i=0;i<n;i++)
    {
    a1[i]=i+1;
    b[i]=a1[i]*10;
    }


    for (int i = 0; i < n; ++i)
    {
        int tmp = a1[i];
        a1[i] += b[i];
        b[i] *= tmp;
    }

    for (int i=0;i<n;i++)
    printf("%d ",a1[i]);


    for (int i=0;i<n;i++)
    printf("%d ",b[i]);

    return a.exec();
}
вот результат, выводится только массив А1,...если я прав
Изображения
Тип файла: jpg Безымянный.jpg (68.7 Кб, 118 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 01.11.2014, 01:17   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет, после 1650 B.
И разделите вывод-то как-нибудь.
printf("\n\n") хотя бы между ними.

И про форматирование кода так и не услышали. Чего оно такое стремное? То есть отступ и пробелы около =, ; в for, +, *, то нет.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 01.11.2014 в 01:22.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод последовательности кодов символов с клавиатуры Alexey_Suprun Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 12.01.2014 14:23
Как через if прекратить дальнейшее выполнения кода? Женя32 Общие вопросы Delphi 5 03.11.2013 05:39
Осуществить ввод последовательности целых чисел. Alimzhan93 C# (си шарп) 1 07.06.2013 06:29
Проверьте код monty "2" Помощь студентам 2 08.04.2010 17:44
Ввод последовательности чисел POPOV Общие вопросы Delphi 5 16.02.2008 22:13