Структура Студент: Вместо кириллицы выводятся кракозябры - C (СИ)
Формулировка задачи:
Программа работает, но когда нужно выводить (не)успевающих, то выводятся непонятные символы, что не так?
#include<stdio.h> #include<locale.h> #include <conio.h> struct student { int numz; char surname[30], name[30], otchestvo[30]; int shifr; int mark; }; int main () { int N, kurs; char group[30], fakul[30]; setlocale(LC_ALL, ""); printf("\n Факультет: "); scanf( "%s", &fakul); printf(" Группа: "); scanf( "%s", &group); printf(" Курс: "); scanf( "%d", &kurs); printf(" сколько человек в группе?"); scanf("%d", &N); struct student stud[30]; int i; for (i=0; i<N; i++) { printf("%d-й студент", i+1); printf("\n Номер зачетки: "); scanf( "%d", &stud[i].numz); printf("\n Ф.И.О : "); scanf( "%s %s %s", &stud[i].surname, &stud[i].name, &stud[i].otchestvo); printf("\n Шифр предмета: "); scanf( "%d", &stud[i].shifr); printf("\n Оценка: \n"); scanf( "%d", &stud[i].mark); } for (i=0; i<N; i++) { if((stud[i].mark)<3) printf("%s %s %s Не успевает по %d\n ", stud[i].surname, stud[i].name, stud[i].otchestvo, stud[i].shifr ); else { if((stud[i].mark)>=3) printf("%s %s %s Успевает по %d\n", stud[i].surname, stud[i].name, stud[i].otchestvo, stud[i].shifr ); } } }
Решение задачи: «Структура Студент: Вместо кириллицы выводятся кракозябры»
textual
Листинг программы
#include<stdio.h> #include<locale.h> #include <conio.h> struct student { int numz; char surname[30], name[30], otchestvo[30]; int shifr; int mark; }; int main (void) { int N, kurs; char group[30], fakul[30]; setlocale(LC_ALL, ""); printf("\n Факультет: "); scanf( "%s", fakul); printf(" Группа: "); scanf( "%s", group); printf(" Курс: "); scanf( "%d", &kurs); printf(" сколько человек в группе?"); scanf("%d", &N); struct student stud[30]; int i; for (i=0; i<N; i++) { printf("%d-й студент", i+1); printf("\n Номер зачетки: "); scanf( "%d", &stud[i].numz); printf("\n Ф.И.О : "); scanf( "%s %s %s", stud[i].surname, stud[i].name, stud[i].otchestvo); printf("\n Шифр предмета: "); scanf( "%d", &stud[i].shifr); printf("\n Оценка: \n"); scanf( "%d", &stud[i].mark); } for (i=0; i<N; i++) { if((stud[i].mark)<3) printf("%s %s %s Не успевает по %d\n ", stud[i].surname, stud[i].name, stud[i].otchestvo, stud[i].shifr ); else { if((stud[i].mark)>=3) printf("%s %s %s Успевает по %d\n", stud[i].surname, stud[i].name, stud[i].otchestvo, stud[i].shifr ); } } return(0);}
Объяснение кода листинга программы
- Представлен код на языке C, который предназначен для ввода и вывода информации о студентах.
- В начале кода определяются переменные и структура данных
студент
. Структурастудент
содержит поля: номер зачетной книжки, ФИО, шифр предмета и оценка. - Затем в функции main() определяется количество студентов в группе и происходит инициализация переменных факультета, группы и курса.
- Далее происходит цикл, в котором происходит ввод информации о каждом студенте: его номере зачетной книжки, ФИО, шифре предмета и оценке.
- После ввода информации о всех студентах происходит вывод информации о тех студентах, которые получают оценку меньше 3 и 3 и выше.
- Код использует функции scanf() и printf() для ввода и вывода информации.
- В конце функции main() возвращается значение 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д