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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2019, 15:21   #11
bylbyl9tor
Пользователь
 
Регистрация: 07.10.2018
Сообщений: 28
Стрелка

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Я C++ не знаю, но написал, думаю, правильно. Какие ошибки выдает? На что ругается?
По правде говоря, я писал, ориентируясь на JS, а потом просто заменил характерные конструкции. У меня всё работало.
http://prntscr.com/mskgxk

Всё, вы написали правильно, олько немного синтаксис попутали, я исправил всё таки, спасибо!),вот в чём ошибка была, если вам интересно
Код:
		
			 i % 3 == 0 ? cout << "fizz"<<endl : cout << i << endl;

Последний раз редактировалось Вадим Мошев; 03.03.2019 в 16:05.
bylbyl9tor вне форума Ответить с цитированием
Старый 05.03.2019, 01:46   #12
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я попробую объяснить, почему в C++ мой код не прошёл. Напомню, изначально я писал его на JS. Выглядело это так:
Код:
for (var i = 1; i <= 100; i++) { // вместо var можно let написать
  if (i % 15 == 0) {
    console.log('fizbiz');
  } else if (i % 5 == 0) {
    console.log('biz');
  } else {
  	console.log(i % 3 == 0 ? 'fiz' : i); // (*)
  }
}
если запустить такой код в консоли браузера, он выведет как раз то, что требуется по заданию. Вывод будет там же в консоли.
В строке (*) в консоль выводится значение тернарного оператора. Я так понимаю, в отличие от JS, в C++ (судя по ошибкам), есть несколько перегруженных версий оператора cout <<, у каждого из которых второй и третий операнд должны быть одного типа. Я могу ошибаться, C++ не знаю (хотя в том, как это работает в C++, нет ничего удивительного, ведь в этом ЯП строгая (статическая) типизация). В JS, как показала практика, такое сделать можно.
Вадим Мошев вне форума Ответить с цитированием
Старый 05.03.2019, 09:17   #13
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А чего только один "?:"? Если не считать это if, то хоть все три им можно заменить.

Ну а если считать, то например https://stackoverflow.com/questions/...-only-2-checks
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.03.2019, 11:18   #14
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 751
По умолчанию

Код:
#include <iostream>
#include <string>
#include <stdlib.h>
#include <cstdlib>
using namespace std;
char Bufer[4] = {0};

int main()
{
    for(int i = 1; i <= 100; i++)
    {
        if((i%5 == 0)&&(i%3 == 0))
          cout << "fizzbizz" << endl;
        else if(i%5 == 0)
          cout << "bizz" << endl;
        else
          cout <<  ((i%3 == 0)?"fizz":itoa(i, Bufer, 10)) << endl;
    }
}
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 05.03.2019, 11:25   #15
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А без ?: слабо? Это ж почти if.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.03.2019, 11:54   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а с одним if но с использованием строковых массивов подойдёт?

https://ideone.com/qnVJZt

Код:
#include <iostream>
using namespace std;

int main()	{
    const char* ans3[] = { "fizz", "", "" };	
    const char* ans5[] = { "bizz", "", "", "", "" };	
	for (int i = 1; i <= 100; i++)
	{
	    if ((i % 3 == 0) || (i % 5 == 0))
			cout << ans3[i % 3]<< ans5[i % 5]<< endl;
		else
			cout << i << endl;
	}
	system("pause");
	return 0;
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.03.2019, 22:01   #17
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,619
По умолчанию

Совсем без if можно через switch-case
digitalis вне форума Ответить с цитированием
Старый 06.03.2019, 22:07   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Не, это слишком просто и по сути тот же if.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.03.2019, 22:44   #19
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,619
По умолчанию

Тогда задача нерешаема: возможны 4 варианта, на каждом условном операторе отсеивается ответвляется 1 вариант.
: - это тоже if. А вот с одним If - пожалуйста. Интересно, а еще нелепей и смешней можно решить этот шедевр ?
Код:
#include <stdio.h>
int i,isv ;
int signum(int param)
 { if (param == 0 ) return (0) ; else return (1) ; }

void subro(int param)
{
  isv = 3 - signum(param % 15)*3 ;
  isv = isv | (2 - signum(param % 5)*2 ) ;
  isv = isv | 1 - signum(param % 3);
  switch ( isv )
{
case 1:
  printf (" = fizz\n") ;
  break;
case 2:
  printf (" = bizz\n") ;
  break;
case 3:
  printf (" = fizzbizz\n") ;
  break;
default:
  printf (" = %d\n",param) ;
  break;
}
}

void main (void)
{
   for (i=1;i<16;i++)
     { printf ("%d",i) ; subro (i) ; }
}

Последний раз редактировалось digitalis; 06.03.2019 в 23:03.
digitalis вне форума Ответить с цитированием
Старый 06.03.2019, 22:51   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Тогда задача нерешаема
В #6 два if-а и без особых фокусов )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Дана последовательность натуральных чисел a1,a2,a3,an.Создать массив из четной последовательности если четных нет вывести Макас C# (си шарп) 2 28.12.2017 11:25
Даны три вещественных числа Если они принадлежат данному отрезку , то вывести их на печать в порядке возрастания. Если ни одно число не принадлежит отрезку, вывести сообщение об эт Lushov Помощь студентам 0 02.12.2016 18:28
Даны натуральные K и L. Определить, делится ли K нацело на L. Если делится, то заменить эти числа их квадратами, в противном случ Proskurina Помощь студентам 1 27.03.2013 21:39
С++ айти первых 10 натуральных чисел, нацело делятся на 19 и находятся в интервале, левая граница которог loloverg Помощь студентам 2 25.05.2010 19:42