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