Тема: Задача C++
Спроектувати програму , що реалізує введення прізвища , імені та по-батькові як одного даного строкового типу. Визначити довжину рядка і кількість літер ’ а ’ у ньому.
Вивести ім’я, кількість літер у третьому слові.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Задача C++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Спроектувати програму , що реалізує введення прізвища , імені та по-батькові як одного даного строкового типу. Визначити довжину рядка і кількість літер ’ а ’ у ньому.
Вивести ім’я, кількість літер у третьому слові.
Перше що прийшло до голови. Головне суть, на плюси переводьте самі:
#include <stdio.h>
#include <string.h>
int main() {
char buf[100], temp_buf[100], name[50],
*temp, *ss;
int a = 0, cnt = 0,
thr_wrd_len, len;
memset(buf, 0, 100);
gets(buf);
temp = buf;
while (*temp) {
if (*temp == 'a' || *temp == 'A')
a++;
temp++;
}
memcpy(temp_buf, buf, 100);
memset(name, 0, 50);
ss = strtok(temp_buf, " ");
do {
ss = strtok(NULL, " ");
cnt++;
if (cnt == 1)
memcpy(name, ss, strlen(ss));
if (ss && cnt == 2)
thr_wrd_len = strlen(ss);
} while (ss);
len = strlen(buf);
printf("Surname Name Patronymic: %s\n"
"Surname Name Patronymic len: %d\n"
"'a': %d\n"
"Name: %s\n"
"Three word len: %d\n",
buf, len, a, name, thr_wrd_len);
return 0;
}
Parashenka Petr Alekseevich[enter]
Surname Name Patronymic: Parashenka Petr Alekseevich
Surname Name Patronymic len: 27
'a': 4
Name: Petr
Three word len: 11
Всього за якісь нещасні $100 я напишу цю програму. Або покажіть свої напрацювання і скажіть що саме у вас не получається. Допоможемо порадою, безкоштовно
Ну і чистовий, більш "гарний", варіант:
#include <stdio.h>
#include <string.h>
#define SIZE_PIB 3
#define SYM_SRCH_LOW 'a'
enum { Surname, Name, Patronymic };
int get_words(char **arr, char *src, char *dst) {
int i = 0;
memcpy(dst, src, strlen(src) + 1);
char *p = strtok(dst, " ");
arr[i++] = p;
do {
p = strtok(NULL, " ");
if (p)
arr[i++] = p;
} while (p);
return i;
}
int get_a(char *src) {
char *temp = src;
int a = 0;
while (*temp) {
if (*temp == SYM_SRCH_LOW || *temp == toupper(SYM_SRCH_LOW))
a++;
temp++;
}
return a;
}
int main() {
char buff[100],
dst[100];
char *share[SIZE_PIB];
printf("Enter please full name. Example: Parashenka Petr Alekseevich\n");
while (1) {
int pib_len;
gets(buff);
if ((pib_len = get_words(share, buff, dst)) != SIZE_PIB)
printf("reenter please\n");
else
break;
}
printf("PIB: %s\n"
"PIB len: %d\n"
"'a': %d\n"
"Name: %s\n"
"Three word len: %d\n",
buff, strlen(buff), get_a(buff), share[Name], strlen(share[Patronymic]));
return 0;
}
Чому C ??????, а не C++ - IMHO C++ - рулит
Перше що прийшло до голови. Головне суть, на плюси переводьте самі:
#include <stdio.h> #include <string.h> int main() { char buf[100], temp_buf[100], name[50], *temp, *ss; int a = 0, cnt = 0, thr_wrd_len, len; memset(buf, 0, 100); gets(buf); temp = buf; while (*temp) { if (*temp == 'a' || *temp == 'A') a++; temp++; } memcpy(temp_buf, buf, 100); memset(name, 0, 50); ss = strtok(temp_buf, " "); do { ss = strtok(NULL, " "); cnt++; if (cnt == 1) memcpy(name, ss, strlen(ss)); if (ss && cnt == 2) thr_wrd_len = strlen(ss); } while (ss); len = strlen(buf); printf("Surname Name Patronymic: %s\n" "Surname Name Patronymic len: %d\n" "'a': %d\n" "Name: %s\n" "Three word len: %d\n", buf, len, a, name, thr_wrd_len); return 0; }
Parashenka Petr Alekseevich[enter]
Surname Name Patronymic: Parashenka Petr Alekseevich
Surname Name Patronymic len: 27
'a': 4
Name: Petr
Three word len: 11
Чому C ??????, а не C++
В контексті вирішення цієї задачі - всеодно на чому писати.
IMHO C++ - рулит
"кесарю кесареве".
допоможіть написати задачу і алгоритм
Новорічні подарунки
Діду Морозу і Снігурочці потрібно доставити N подарунків дітям.
Знаючи час T1 пакування кожного подарунку Снігурочкою та час його доставки Дідом Морозом T2, знайти найменший час, за який вони зможуть виконати всі замовлення. В свій мішок Дід Мороз може вкласти лише один подарунок.
Технічні умови
Вхідні дані
У першому рядку єдине число N - кількість подарунків. У наступних 2-х рядках через пропуск по N чисел, відповідно: у другому рядку - час пакування кожного подарунку Снігуронькою, у третьому - час його доставки Дідом Морозом.
1 ≤ N ≤ 300, 0 < T1, T2 ≤ 1000.
Вихідні дані
Єдине число - найменший час доставки всіх подарунків.
Інформація про задачу
Ліміт часу: 1 секунда
Ліміт пам`яті: 64 MB
Бали за пройдений тест: 10
Складність: 53% 28/60
Приклад
Приклад вхідних даних
5
4 4 30 6 2
5 1 4 30 3
Приклад вихідних даних
47
Пані Христино, створіть, будь ласка, нову тему для вашої задачі.
Для цього перейдіть за посиланням: http://replace.org.ua/new/topic/6/.
А краще - прочитайте, нарешті, правила. Ви ж із ними погодилися, хіба ні?
А краще - прочитайте, нарешті, правила. Ви ж із ними погодилися, хіба ні?
99,99% користувачів погоджуються не з правилами, а з тим, що потрібно поставити галочку, щоб перейти на наступний крок реєстрації, так що тут питання спірне
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися