Энэ лабораторын ажлаар Си хэл дээр бичигдсэн хэдэн энгийн жишээ турших болно. Эцсийн хугацаа XII долоо хоног
Дараах жишээг туршиж үзээд шаардлагатай хэсгүүдэд тайлбар бичиж ~/sw302/lab06/sort_random.c (~/sw302/lab06/sort_random - хөрвүүлэгдсэн файл нь ийм нэртэйгээр бас байх ёстой) директорт хадгална уу. Тайлбар бичихдээ хараад ойлгогдох зүйлийг биш цаад утга санааг нь тайлбарлах хэрэгтэй.
#include <stdio.h>
#include <stdlib.h>
/* Доорх мөрөнд тайлбар шаардлагатай */
void sort_array(int *, int, int (*compare_ptr)(int, int));
/* Доорх мөрөнд тайлбар шаардлагатай */
void swap(int *a, int *b);
/* Доорх мөрөнд тайлбар шаардлагатай */
int compare(int a, int b);
/* Доорх мөрөнд тайлбар шаардлагатай */
int reverse_compare(int a, int b);
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_array(int *, int);
int main(int argc, char *argv[]){
const int ARRAY_SIZE = 10, MAX_NUMBER = 100;
int array[ARRAY_SIZE];
int i;
for(i = 0; i < ARRAY_SIZE; i++){
array[i] = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
}
printf("Before sort\n");
print_array(array, ARRAY_SIZE);
sort_array(array, ARRAY_SIZE, &compare);
printf("After sorting with regular compare\n");
print_array(array, ARRAY_SIZE);
sort_array(array, ARRAY_SIZE, &reverse_compare);
printf("After sorting with reverse compare\n");
print_array(array, ARRAY_SIZE);
return 0;
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void sort_array(int *a, int size, int (*compare_ptr)(int,int)){
int i, j;
for(i = 0; i < size - 1; i++){
for(j = i + 1; j < size; j++){
if(compare_ptr(a[i], a[j])){
swap(a+i, &a[j]);
}
}
}
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void swap(int *a, int *b){
int tmp = *b;
*b = *a;
*a = tmp;
}
void print_array(int *a, int size){
int i;
for(i = 0; i < size; i++){
printf("%d ", a[i]);
}
printf("\n");
}
/* Доорх мөрөнд тайлбар шаардлагатай */
int compare(int a, int b) { if ( a > b ) return 1; else return 0; }
int reverse_compare(int a, int b) { if ( a < b ) return 1; else return 0; }
#include <stdlib.h>
/* Доорх мөрөнд тайлбар шаардлагатай */
void sort_array(int *, int, int (*compare_ptr)(int, int));
/* Доорх мөрөнд тайлбар шаардлагатай */
void swap(int *a, int *b);
/* Доорх мөрөнд тайлбар шаардлагатай */
int compare(int a, int b);
/* Доорх мөрөнд тайлбар шаардлагатай */
int reverse_compare(int a, int b);
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_array(int *, int);
int main(int argc, char *argv[]){
const int ARRAY_SIZE = 10, MAX_NUMBER = 100;
int array[ARRAY_SIZE];
int i;
for(i = 0; i < ARRAY_SIZE; i++){
array[i] = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));
}
printf("Before sort\n");
print_array(array, ARRAY_SIZE);
sort_array(array, ARRAY_SIZE, &compare);
printf("After sorting with regular compare\n");
print_array(array, ARRAY_SIZE);
sort_array(array, ARRAY_SIZE, &reverse_compare);
printf("After sorting with reverse compare\n");
print_array(array, ARRAY_SIZE);
return 0;
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void sort_array(int *a, int size, int (*compare_ptr)(int,int)){
int i, j;
for(i = 0; i < size - 1; i++){
for(j = i + 1; j < size; j++){
if(compare_ptr(a[i], a[j])){
swap(a+i, &a[j]);
}
}
}
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void swap(int *a, int *b){
int tmp = *b;
*b = *a;
*a = tmp;
}
void print_array(int *a, int size){
int i;
for(i = 0; i < size; i++){
printf("%d ", a[i]);
}
printf("\n");
}
/* Доорх мөрөнд тайлбар шаардлагатай */
int compare(int a, int b) { if ( a > b ) return 1; else return 0; }
int reverse_compare(int a, int b) { if ( a < b ) return 1; else return 0; }
Дараах жишээг туршиж үзээд шаардлагатай хэсгүүдэд тайлбар бичиж ~/sw302/lab06/student_registration.c (~/sw302/lab06/student_registration - хөрвүүлэгдсэн файлынх нь нэр) директорт хадгална уу.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* Доорх мөрөнд тайлбар шаардлагатай */
struct student {
char name[80];
char id[10];
};
/* Доорх мөрөнд тайлбар шаардлагатай */
#define STUDENT_COUNT 4
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_list(struct student *);
char *orders[] = {"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"};
char students[4][2][10] = { {"Dorj", "SW99D999"},
{"Dondog", "SW99D998"},
{"Bat", "SW99D997"},
{"Dulmaa", "SW99D996"}};
int main(void){
int i;
/* Доорх мөрөнд тайлбар шаардлагатай */
struct student *sw302_students;
sw302_students = malloc(sizeof(struct student) * STUDENT_COUNT);
for(i = 0; i < STUDENT_COUNT; i++){
/* Доорх мөрөнд тайлбар шаардлагатай */
strcpy(sw302_students[i].name, students[i][0]);
strcpy(sw302_students[i].id, students[i][1]);
}
print_list(sw302_students);
return 0;
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_list(struct student *list){
int i;
printf("Printing students:\n");
for(i = 0; i < STUDENT_COUNT; i++){
printf("%d%s students\n\t\tname: %s\n\t\tid:%s\n", i+1, orders[(i+1)%10], list[i].name, list[i].id);
}
printf("Done\n");
}
#include <string.h>
#include <stdlib.h>
/* Доорх мөрөнд тайлбар шаардлагатай */
struct student {
char name[80];
char id[10];
};
/* Доорх мөрөнд тайлбар шаардлагатай */
#define STUDENT_COUNT 4
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_list(struct student *);
char *orders[] = {"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th"};
char students[4][2][10] = { {"Dorj", "SW99D999"},
{"Dondog", "SW99D998"},
{"Bat", "SW99D997"},
{"Dulmaa", "SW99D996"}};
int main(void){
int i;
/* Доорх мөрөнд тайлбар шаардлагатай */
struct student *sw302_students;
sw302_students = malloc(sizeof(struct student) * STUDENT_COUNT);
for(i = 0; i < STUDENT_COUNT; i++){
/* Доорх мөрөнд тайлбар шаардлагатай */
strcpy(sw302_students[i].name, students[i][0]);
strcpy(sw302_students[i].id, students[i][1]);
}
print_list(sw302_students);
return 0;
}
/* Доорх мөрөнд тайлбар шаардлагатай */
void print_list(struct student *list){
int i;
printf("Printing students:\n");
for(i = 0; i < STUDENT_COUNT; i++){
printf("%d%s students\n\t\tname: %s\n\t\tid:%s\n", i+1, orders[(i+1)%10], list[i].name, list[i].id);
}
printf("Done\n");
}
No comments:
Post a Comment