Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 16.07.2012
Сообщений: 40
1

С4 информатика

24.05.2013, 20:56. Показов 2313. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльной шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек. На вход программы подаются сведения о результатах олимпиады. В первой строке вводится количество участников N. Далее следуют N строк, имеющих следующий формат:

<Фамилия> <Имя> <Баллы>

Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов; <Баллы> – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Примеры входных строк:

Петрова Ольга 25 18 16

Калиниченко Иван 14 19 15

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

Уважаемые,ну простите меня за мою некомпетентность,я пишу:

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
#include <stdio.h>
#include <math.h>
#include <string.h>
 
main(){
    struct Rez {
        char fam[20];
        char name[15];
        int rez;    
    } ;
    int rez1;
    int rez2;
    int rez3;
    Rez dig[100];
    int i,j,n,tmp;
 
    printf("Введите число участников: \n");
    scanf("%d",&n);
    printf("Введите имена и результаты участников: \n");
 
    for (i = 0; i < n - 1; i++ ){
        scanf("%s %s %d %d %d",&Rez.fam,&Rez.name,&rez1,&rez3,&rez3);
        Rez.rez = rez1 + rez2 + rez3;
            dig[i] = Rez;
    }
 
    for (i = n - 1; i >= 1; i-- ){ 
        for (j = 0; j <= i; j++ ){
            if (dig[i].rez > dig[j].rez){
                tmp = dig[j];
                dig[i] = dig[j];
                dig[j] = tmp;
            }   
        }   
    }
 
    printf("\n%s %s %d",dig[n - 1].fam,dig[n - 1].name,dig[n - 1].rez);
    return 0;
}
А мне в ответ:

ошибка: unknown type name «Rez»

со всеми вытекающими.Повторюсь,опыта общения с текстурами у меня около часа.Где я наошибался?Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2013, 20:56
Ответы с готовыми решениями:

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

Романов Е.Л. Информатика и программирование. Язык Си. (конспект лекций). НГТУ. ВОПРОСЫ БЕЗ ОТВЕТОВ!
Добрый день! Есть ли у кого ответы на &quot;вопросы без ответов&quot; которые даны в учебнике (Романов Е.Л. Практикум по программированию на...

Дано слово «информатика». Путем склеивания и вырезания получить слова «форма» и «мак»
Дано слово «информатика». Путем склеивания и вырезания получить слова «форма» и «мак».

3
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 2
24.05.2013, 23:07 2
Твоя ошибка была в том, что ты когда описывал структуру должен был после фигурной скобки указать свою переменную dig:
struct Rez {char fam[20]; char name[15]; int rez;} dig[100];
но ты использовал название своей структуры, как тип переменной, что недопустимо и именно поэтому тебе выводило ошибку.
В своём варианте я описал тип структуры, чтобы можно было записать как ты хотел:
typedef struct exam {char fname[MAX_F], name[MAX_N]; int s1, s2, s3;} t_exam;
t_exam ex[MAX_UCH];

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
#include <stdio.h>
#include <locale.h>
 
#define MAX_UCH 250
#define MAX_F 20
#define MAX_N 15
 
typedef struct exam {char fname[MAX_F], name[MAX_N]; int s1, s2, s3;} t_exam;
 
int main() {
    int i, n, max_points = 0, summ;
    t_exam ex[MAX_UCH];
 
    setlocale(LC_ALL, "");
    printf("Введите число участников: ");
    scanf("%d", &n);
 
    printf("Введите фамилии и имена участников, а так же их баллы по трём предметам:\n");
    for (i = 0; i < n; i++) {
        scanf ("%s %s %d %d %d", &ex[i].fname, &ex[i].name, &ex[i].s1, &ex[i].s2, &ex[i].s3);
        if (max_points < (summ = ex[i].s1+ex[i].s2+ex[i].s3))
            max_points = summ;
    }
 
    printf("\nПобедители Олимпиады:\n");
    for (i = 0; i < n; i++)
        if (max_points == ex[i].s1+ex[i].s2+ex[i].s3)
            printf("%s %s\n", ex[i].fname, ex[i].name);
 
    return 0;
}
0
1 / 1 / 0
Регистрация: 16.07.2012
Сообщений: 40
24.05.2013, 23:09  [ТС] 3
Вот мой вариант,может он не рационален,но я знаком со строками 2 дня,а со структурами 3 часа,мне кажется,я справился.
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 <math.h>
#include <string.h>
 
main(){
    struct Rezultat {
        char fam[20];
        char name[15];
        int rez;    
    } Rez;
    int rez1;
    int rez2;
    int rez3;
    struct Rezultat dig[100];
    int i,j,n,mm;
    struct Rezultat tmp;
    
    printf("Введите число участников: \n");
    scanf("%d",&n);
    printf("Введите имена и результаты участников: \n");
    
    for (i = 0; i < n; i++ ){
        scanf("%s %s %d %d %d",Rez.fam,Rez.name,&rez1,&rez2,&rez3);
        Rez.rez = rez1 + rez2 + rez3;
        dig[i] = Rez;
    }
    
    for (i = n - 1; i >= 1; i-- ){ 
        mm = 0;
        for (j = 0; j <= i; j++ ){
            if (dig[j].rez > dig[i].rez){
                mm = j;
                tmp = dig[i];
                dig[i] = dig[mm];
                dig[mm] = tmp;
            }   
        }   
    }
    for (i = 0; i < n - 1 ; i++){
        if(dig[n - 1].rez == dig[i].rez ){
            printf("\n%s %s\n",dig[i].fam,dig[i].name); 
        }
    }
    
    printf("\n%s %s\n",dig[n - 1].fam,dig[n - 1].name);
    return 0;
}
0
0 / 0 / 0
Регистрация: 21.04.2013
Сообщений: 16
25.05.2013, 00:19 4
Ты объявил тип структуры, но не инициализировал его HydraGenuim написал тебе верный вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2013, 00:19
Помогаю со студенческими работами здесь

Специальность "бизнес-информатика" и "информатика и вычислительная техника"
Всем привет, поступил на специальность &quot;бизнес-информатика&quot;, хотелось бы узнать у кого такая специальность, и похожа ли она на...

информатика
1) Какой объем информации содержит сообщение, уменьшающее неопределенность знаний в 4 раза? 2) Для записи сообщения использовался...

Информатика
Помогите решить пожалуйста очень нужно 1 Запишите число 19.75 в двоичной системе счисления в нормализованной форме.Укажите мантиссу и...

Информатика
1. Вывести все натуральные трехзначные числа, в которых есть заданная цифра. 2. Найти сумму четных целых чисел на промежутке от 1 до K. ...

Информатика
ЭТО СРОЧНО в файле все написано.В долгу не останусь.умоляю. Арина97, обращаю Ваше внимание на правила форума: 1. Множественные...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru