제 질문은 일, 월, 년 세 멤버가 포함 된 구조를 만드는 것입니다. 우리는 키보드를 통해 10 명의 직원이 합류하는 연도를 제공해야합니다. 제공된 연도는 증가하는 순서로 사용자에게 다시 표시되어야합니다.구조의 배열을 통해 정렬 된 순서로 표시하려면
그래서 구조체 배열을 사용하고 scanf() 함수를 사용하여 값을 제공하고 나중 버블 정렬을 사용하여 제공된 연도를 정렬했습니다. 하지만 그것은 scanf()에 문제가있는 것 같습니다. 내 코드에서 런타임 오류가 발생했습니다. 내 코드에서 실수 란 무엇입니까? 도와주세요.
다음은 내 코드
#include<stdio.h>
void swap(int *, int *);
int main()
{
int i, j;
typedef struct date
{
char day : 5;
char month : 4;
int year : 12;
}D;
D arr[10];
printf("Enter year of joining of 10 employees\n");
for (i = 0; i < 10; i++)
scanf_s("%d", arr[i].year);
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10; j++)
{
if (arr[i].year > arr[j].year)
swap(arr[i].year, arr[j].year);
}
}
printf("Value of employees joining year in sorted order is : \n");
for (i = 0; i < 10; i++)
printf("%d", arr[i].year);
return 0;
}
void swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
'scanf_s ("% d", arr [i] -> 년)' –
scanf()는 포인터가 필요하므로 & arr [i]. 추신 : scanf_s()와 'friends'는 사용하지 마십시오. –