М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dimanebutov1
dimanebutov1
10.05.2022 00:47 •  Информатика

Создайте программу, которая принимает возраст в годах и возвращает возраст в дни.

👇
Ответ:
PhoenixStep
PhoenixStep
10.05.2022

#include <iostream>

#include <cstring>

#include <string>

#include <sstream>

#include <ctime>

#include <cstdlib>

 

char MyAge(char*);

using namespace std;

 

int main()

{

   setlocale(LC_ALL,"rus");

 

   char str_result;

   char str1[20];

   cout << "Введите дату рождения в формате - число/месяц/год" << endl;

   cin >> str1;

 

    MyAge(str1);

 

   return 0;

}

 

char MyAge(char*str1)

{

 

   char day[3], month[3], year[5];

   int age;

   int a = 2021;

   //char str2[100];

   for(int i = 0; i < *str1; i++)

       if(str1[i] == '/')

           str1[i] = ' ';

   istringstream ss(str1);

 

   (ss >> day).get();

   (ss >> month).get();

   (ss >> year).get();

       age = atoi(year);

       age = a - age;

   ostringstream str2;

   str2 << "Лет - " << age << " Месяцев - "<< month << " Дней - " << day;

 

   cout << str2;

}

Объяснение:

from datetime import date

def calculate_age(born):

   today = date.today()

   try:  

       birthday = born.replace(year=today.year)

   except ValueError: # raised when birth date is February 29 and the current year is not a leap year

       birthday = born.replace(year=today.year, month=born.month+1, day=1)

   if birthday > today:

       return today.year - born.year - 1

   else:

       return today.year - born.year

Начало это си а конец питон

4,4(33 оценок)
Открыть все ответы
Ответ:
ARTMASS
ARTMASS
10.05.2022
Ошибка

В строке  's2:= s2 + s1[i] + s1[i];'

По умолчанию все переменные равны нулю

т.к. вы не задали значение i и вводите эту строку вне цикла for, то получается что вы запрашиваете нулевой элемент массива s1, при том что нумерация начинается с единицы, поэтому и выдаёт ошибку.

"Индекс находится вне границ массива"

Верный код программы

program raf105;

var s1,s2:string;

i:integer;

begin

writeln('Введите строку');

readln(s1);

s2:='';

for i:=1 to length(s1) do

 s2:= s2 + s1[i] + s1[i];

writeln(s2);

end.

4,7(83 оценок)
Ответ:
trafimozza
trafimozza
10.05.2022

program raf105;

var a:array[1..100,1..2] of char;

glas,s:string;

i,j,sumglas:integer;

begin

glas:='аеёиоуыэюя'; // Перечисление гласных

for i:=1 to length(glas) do

 a[i,2]:= glas[i]; //Заполнение второй строки для гласных

writeln('Введите строку');

readln(s);

for i:=1 to length(s) do

 a[i,1]:= s[i]; //Заполнение первой строки для введённых букв

for i:=1 to length(s) do

 for j:=1 to length(glas) do

   if a[i,1] = a[j,2] //если символ из строки 1 = символу из строки 2

     then sumglas:= sumglas+1; //Прибавление единицы к счётчику

writeln('В строке ',sumglas,' гласных');

end.

4,4(98 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ