实验六
实验一:已完成
实验二: 已完成
实验三: 已完成
实验四:
1 void output(Book x[], int n) { 2 int i; 3 printf("ISBN编号\t\t书名\t\t\t\t作者\t\t售价\t\t销售册数\n"); 4 for (i = 0; i < n; i++) 5 printf("%s\t%s\t\t\t%s\t\t%lf\t\t%d\n",x[i].isbn, x[i].name, x[i].author, x[i].sales_price, x[i].sales_count); 6 } 7 8 9 10 void sort(Book x[], int n) { 11 Book t; 12 int i, j; 13 for (i=0;i<n-1;i++) 14 for (j=0;j<n-i-1;j++) 15 if (x[j].sales_count < x[j + 1].sales_count) { 16 t = x[j]; 17 x[j] = x[j + 1]; 18 x[j + 1] = t; 19 } 20 } 21 22 23 double sales_amount(Book x[], int n) { 24 int i; 25 double sum = 0; 26 for (i = 0; i < n; i++) 27 sum += x[i].sales_price * x[i].sales_count; 28 return sum; 29 }
实验五:
1 void input(Date *pd) { 2 scanf_s("%d-%d-%d", &pd->year, &pd->month, &pd->day); 3 } 4 5 6 int day_of_year(Date d) { 7 int sum = 0; 8 int Feb = 28; 9 if (d.year % 4 == 0 )Feb = 29; 10 if(d.year % 100 == 0)Feb = 28; 11 if (d.year % 400 == 0)Feb = 29; 12 sum += d.month / 2 * 31 +((d.month-1)/2-1)*30+ d.day; 13 if (d.month > 2)sum += Feb; 14 return sum; 15 } 16 17 18 int compare_dates(Date d1, Date d2) { 19 int a, b, c; 20 a = (d1.year > d2.year ? 1 : d1.year == d2.year ?0:-1); 21 b= (d1.month > d2.month ? 1 : d1.month == d2.month ? 0 : -1); 22 c= (d1.day > d2.day ? 1 : d1.day == d2.day ? 0 : -1); 23 if (a)return a; 24 else if (b) return b; 25 else if (c) return c; 26 else return 0; 27 28 }
实验六:
1 void output(Account x[], int n) { 2 int i; 3 int k; 4 for (i = 0; i < n; i++) { 5 k = strlen(x[i].password); 6 printf("%s\t\t", x[i].username); 7 for (k; k >= 0; k--) 8 printf("*"); 9 printf(" \t\t\t"); 10 switch (x[i].type) { 11 case admin: printf("admin"); break; 12 case student: printf("student"); break; 13 case teacher: printf("teacher"); break; 14 } 15 printf("\n"); 16 } 17 }
实验七:
1 void set_vip_contact(Contact x[], int n, char name[]) { 2 int i; 3 for (i = 0; i < n; i++) 4 if (strcmp(x[i].name, name)==0)x[i].vip = 1; 5 } 6 7 void display(Contact x[], int n) { 8 int i,j; 9 Contact k; 10 for(i=0;i<n-1;i++) 11 for(j=0;j<n-i-1;j++) 12 if (strcmp(x[j].name, x[j + 1].name)>0) { 13 k = x[j]; 14 x[j] = x[j + 1]; 15 x[j + 1] = k; 16 } 17 for (i = 0; i < n; i++) 18 if (x[i].vip == 1) printf("%-10s%-15s %5s\n", x[i].name, x[i].phone,"*" ); 19 for(i = 0; i < n; i++) 20 if (x[i].vip == 0) printf("%-10s%-15s\n", x[i].name, x[i].phone); 21 }

浙公网安备 33010602011771号