Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
1

В группе найти студентов с одинаковыми фамилиями

11.04.2011, 21:03. Показов 4232. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте!
У меня две задачки (вроде бы не трудные) :
1.В группе найти студентов с одинаковыми фамилиями. Мой код таков:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <conio.h> 
#include <stdio.h> 
#include <string.h> 
void main ()
{ 
char fam1[]="Lee";
char fam2[]="Lee";
char fam3[]="Pak";
char fam4[]="Pac";
clrscr();
printf("%d\n",strcmp(fam1,fam2));
printf("%d\n",strcmp(fam3,fam4));
getch();
}
Здесь я использовал функцию strcmp, но она сравнивает тока две строки.
Можно ли сделать по другому и шоб фамилии вводить с клавы.

И вторая: Напишите программу, определяющую, сколько букв «о» стоит в заданном слове на четных местах.
Мой код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char str[80];
int i,o=0;
clrscr();
puts(str);
gets(str);
for(i=1;i<strlen(str);i++)
if(str[i]=='o') o++;
printf("Bukva o vstrechaetsya %i raz",o);
getch();
}
Прога немного неправильная и букву "о" определяет в общем.

 Комментарий модератора 
1. Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
2. Используйте теги выделения кода соответствующие использованному языку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2011, 21:03
Ответы с готовыми решениями:

Как выбрать из списка студентов с одинаковыми фамилиями и подсчитать их средний балл
В общем задание такое. не сильно надеюсь но все же Написать макрос выбора из списка тех студентов,...

Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе
блииин ничего непонела !!на языки С нужно написать программу на тему ввод и ввывод файловых...

Найти в справочнике людей с одинаковыми фамилиями
написать программу , которая в заданном месте ищет всех людей с одинаковыми фамилиями

Определить количество людей с одинаковыми фамилиями, проживающих на одной улице
Здравствуйте помогите сформировать запрос, по которому --определить количество людей с...

4
101 / 101 / 15
Регистрация: 04.02.2010
Сообщений: 162
11.04.2011, 23:06 2
Цитата Сообщение от Nursik77 Посмотреть сообщение
#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
char str[80];
int i,o=0;
clrscr();
puts(str);
gets(str);
for(i=1;i<strlen(str);i++)
if(str[i]=='o') o++;
printf("Bukva o vstrechaetsya %i raz",o);
getch();
2.
C
1
2
3
4
5
6
7
8
9
10
    char str[80];
    int i,o=0;
    clrscr();
    gets( str );
    for( i = 0; i < strlen( str ) + 1; i++ )
        //если нужно изменить условие "чет-нечет" меняем ( i % 2 ) на  !( i % 2 )
        if( str[ i ] == 'o' && ( i % 2 ) ) o++;
    printf("Bukva o vstrechaetsya %i raz",o);
 
    getch();
Добавлено через 39 минут
1.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include<string.h>
 
int main(void)
{
    char ** student;
 
    int num, i, j, count, n = 0;
 
    printf( "Input amount of students in your group: " );
    scanf( "%d", &num );
    student = ( char ** ) malloc( num * sizeof ( char * ) );
    printf( "\n" );
    for( i = 0; i < num; i++ ){
        student[i] = ( char * ) malloc( 100 * sizeof ( char ) );
        printf( "stunet name: " );
        scanf( "%s", student[ i ] );
    }
 
    for( i = 0; i < num; i++ ){
        count = 0;
        for( j = i + 1; j < num; j++ ){
            if( !strcmp( student[ i ], student[ j ] ) )
                count++;
 
        }
        if( count == 1 ) {
            if( n == 0)
                printf( "\nIdentical students names in your group is:\n" );
            printf( "%s\n", student[ i ] );
            n++;
        }
    }
    if( !n )
        printf( "In your group there are not students with the identical names\n" );
 
    for( i = 0; i < num; i++ ){
        free( student[i] );
    }
    free( student );
 
    getch();
 
    return 0;
}
1
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
12.04.2011, 13:15  [ТС] 3
Спасибо большое!!! А можно комментарий к строкам: 14,17,25 и 40.

Добавлено через 9 минут
Или можно как-нить по проще?
0
101 / 101 / 15
Регистрация: 04.02.2010
Сообщений: 162
12.04.2011, 13:31 4
Цитата Сообщение от Nursik77 Посмотреть сообщение
А можно комментарий к строкам: 14,17,25 и 40
14 и 17 выделение динамической памяти под массив строк
в 25 строке проверяем сколько раз в массиве встречается имя студента. В случае, когда их больше 2-ух, мы просто ничего не выводим, чтобы не выводить одну и туже фамилию несколько раз. Вывод на экран происходит в том случае, когда найдется всего одно совпадение с текущим значением массива, поиск ведется начиная с позиции i+1 до конца массива строк.
40 и 42 освобождение динамической памяти, выделенной под массив строк
1
В вечном поиске...
275 / 235 / 30
Регистрация: 05.04.2011
Сообщений: 645
12.04.2011, 13:37  [ТС] 5
Понял, спасибо!
0
12.04.2011, 13:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2011, 13:37
Помогаю со студенческими работами здесь

Найти перечень групп, в которых средний балл студентов по группе максимален
Дано такое задание: 1.Исходные данные вводятся из файла.(Обычный .txt файл, каждый элемент...

Определить диапазон ячеек с фамилиями студентов по группам
В 1 столбце указаны названия групп, во втором студенты из данных групп. Необходимо определить...

В группе студентов определи средний балл каждого за последнюю сессию, распечатать Ф.И.О. студентов со средним баллом не меньше 4, остальных рассор
Пожалуйста помогите с программой ,очень необходима! С обязательным применением функций, исходные...

Отсортировать массив по сумме баллов студентов и вывести на экран вместе с их фамилиями
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s- результат сессии F...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru