Консультация № 169337
12.06.2009, 22:39
0.00 руб.
0 1 1
1 задача:
Для делимости числа на 9 необходимо, чтобы сумма цифр делилась на 9. Написать функцию проверки делимости числа n вводимого с клавиатуры, на 9.
2 задача:
Дана целочисленная прямоугольная матрица найти сумму элементов в тех строках, которые содержат хотя бы 1 положительный элемент(оформить ввиде процедуры).
3 задача:
Дана информация о 20 сотрудниках фирмы: фамилия, имя, отчество, адрес и дата поступления на работу (год).
- Ввести все данные о сотрудниках, проживающих в городе Москве.
- Ввести все данные о сотрудниках имеющих имя, введенное с клавиатуры.

Приложение:
Дорогие эксперты, прошу вас помоч мне в решении этих данных задач. Я не упеваю их сделать к сессии, а без них меня не допустят. заранее благодарю вас за помощь.

Обсуждение

Неизвестный
13.06.2009, 00:49
общий
это ответ
Здравствуйте, Lunovar!

Предлагаю решение задач (в приложении). В первой задаче решение сводится к преобразованию введенного числа в символьную строку, сложению символов-чисел, и делению по модулю 9. Во второй задаче выводится полностью матрица, и в строках которые которые содержат положительный элемент выводится сумма. В третей задаче загружается файл data.txt (содержимое приведено в конце приложения) и выводятся данные сотрудников из Москвы. После предлагается ввести имя искомого сотрудника, после чего выводятся сотрудники с заданным именем. В информации о сотрудниках придумайте адреса проживания.

Удачи!


Приложение:
////////////////// Задача №1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int NineDivide(int n)
{
int r = 0;
char num[16];
sprintf(num,"%d",n);
for (int i=0; i<strlen(num); i++) r += (num[i]-'0'); //считаем сумму цифр. (num[i]-'0') переводит символы в цифры
return r%9 == 0; //если остаток от деления на 9 равняется 0, значит сумма цифр делится на 9
}

void main()
{
int n;

printf("Введите число:");
scanf("%d",&n);

if (NineDivide(n))
printf("Число %d делится на 9\n",n );
else
printf("Число %d на 9 не делится\n",n );
}

////////////////// Задача №2

#include <stdio.h>

void printSum( int *a, int sx, int sy )
{
for (int i=0; i<sx*sy; i+=sx)
{
int sum = 0, flag = 0;
for(int e=i; e<i+sx; e++)
{
if (a[e]>0) flag = 1;
sum+=a[e];
printf("%3d", a[e]);
}
if (flag==1) printf(" Сумма=%d", sum);
printf("\n");
}
}

void main()
{
int ar[4][4] = {
{ -1,-1,-2,-3 },
{ 4, 3, 3,-1 },
{ 2,-2, 2, 3 },
{ -4,-2,-2,-2 },
};

printSum( (int*)ar, 4, 4 );
}

////////////////// Задача №3

#include <stdio.h>
#include <string.h>
#include <list>
#include <iostream>
#include <fstream>

using namespace std;

typedef struct
{
string FIO;
string Addr;
int Year;
} DATAS;

void main()
{
list<DATAS> people;
fstream stream("data.txt",ios_base::in);
while(!stream.eof())
{
DATAS d;
char s[64];
stream.getline(s, 64); d.FIO = s;
stream.getline(s, 64); d.Addr = s;
stream.getline(s, 64); d.Year = atoi(s);
people.push_back(d);
}
stream.close();

printf("\nПроживают в Москве:\n========================================\n");
for (list<DATAS>::iterator i=people.begin();i!=people.end(); i++)
{
DATAS &d = *i;
if (d.Addr.find("Москва") != -1 )
{
printf("ФИО: %s\n", d.FIO.c_str());
printf("Адрес:%s\n", d.Addr.c_str());
printf("Дата поступления на работу:%d\n", d.Year);
printf("------------------------------------\n");
}
}

printf("\nВведите искомое имя:");
char name[64];
cin.getline(name,64);
printf("\n========================================\n");
for (list<DATAS>::iterator i=people.begin();i!=people.end(); i++)
{
DATAS &d = *i;
if (d.FIO.find(name) != -1 )
{
printf("ФИО: %s\n", d.FIO.c_str());
printf("Адрес:%s\n", d.Addr.c_str());
printf("Дата поступления на работу:%d\n", d.Year);
printf("------------------------------------\n");
}
}
}

////////////////// Содержимое файла data.txt

Агафонова Ирина Николаевна
Москва, проспект...
2002
Андрюшин Евгений Сергеевич
Москва, проспект...
2003
Банник Артём Валерьевич
Санкт-Петербург, улица...
2000
Башкирцев Станислав Сергеевич
Нижний Новгород, улица...
1998
Белоусов Дмитрий Александрович
Екатеринбург, улица...
2004
Бисеров Максим Александрович
Екатеринбург, проспект...
2003
Вылобков Антон Васильевич
Москва, улица...
2005
Грицких Евгений Сергеевич
Москва, улица...
2005
Евдокимов Сергей Сергеевич
Нижний Новгород, проспект...
1997
Кавытин Антон Владимирович
Екатеринбург, проспект...
2000
Луцешсо Любовь Игоревна
Москва, проспект...
2005
Минвалиев Мират Минуллаевич
Нижний Новгород, улица...
2002
Остапчук Василий Викторович
Санкт-Петербург, улица...
2000
Перевозкин Федор Владимирович
Санкт-Петербург, улица...
2006
Санжарова Валерия Валерьевна
Москва, улица...
1999
Серова Галина Сергеевна
Екатеринбург, проспект...
2008
Талыков Константин Викторович
Санкт-Петербург, проспект...
2002
Харлов Михаил Сергеевич
Москва, улица...
2006
Шевцов Станислав Валерьевич
Москва, проспект...
2008
Шин Екатерина Юрьевна
Санкт-Петербург, проспект...
2001
Короткое Антон Николаевич
Москва, улица...
2004
Моисеева Кристина Игоревна
Нижний Новгород, улица...
2005
Форма ответа