实验四

任务1

#include<stdio.h>
#define N 2
#define M 4
int main() {
 int a[N][M] = { {1,9,8,4},{2,0,2,2} };
 char b[N][M] = { {'1','9','8','4'},{'2','0','2','2'} };
 int i, j;

 for (i = 0; i < N; i++)
  for (j = 0; j < M; j++)
   printf("%p:%d\n", &a[i][j], a[i][j]);
 printf("\n");

 for (i = 0; i < N; i++)
  for (j = 0; j < M; j++)
   printf("%p:%c\n", &b[i][j], b[i][j]);
 return 0;
}

 

 

#include<stdio.h>
#define N 2
#define M 4
int main() {
    int a[N][M] = { {1,9,8,4},{2,0,2,2} };
    char b[N][M] = { {'1','9','8','4'},{'2','0','2','2'} };
    int i, j;
    for (i = 0; i < N; ++i)
        for (j = 0; j < M; ++j)
            printf("%p:%d\n", &a[i][j], a[i][j]);
    printf("\n");
    for (i = 0; i < N; ++i)
        for (j = 0; j < M; ++j)
            printf("%p:%c\n", &b[i][j], b[i][j]);
    return 0;
}

 

 任务2

#include<stdio.h>
#define N 13

int days_of_year(int year, int month, int day);

int main() {
 int year, month, day;
 int days;
 while (scanf_s("%d%d%d", &year, &month, &day) != EOF) {
  days = days_of_year(year, month, day);
  printf(" % 4d - % 02d - % 02d是这一年的第 % d天.\n\n", year, month, day, days);
 }
 return 0;
}
int days_of_year(int year, int month, int day) {
 int ds = 0, i, t = 0;
 int m[13] = { 31,t,28,31,30,31,30,31,31,30,31,30,31 };
 if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
  t = 29;
 else
  t = 28;
 for (i = 0; i < month; i++)
  ds += m[i];
 ds += day;
 return ds;
}

 

 任务3

#include<stdio.h>
#define N 5

void input(int x[], int n);
void output(int x[], int n);
double average(int x[], int n);
void bubble_sort(int x[], int n);

int main() {
 int scores[N];
 double ave;
 printf("录入%d个分数: \n", N);
 input(scores, N);

 printf("\n输出课程分数: \n");
 output(scores, N);

 printf("\n课程分数处理:计算均分、排序。。。\n");
 ave = average(scores, N);
 bubble_sort(scores, N);

 printf("\n输出课程均分:%.2lf\n", ave);
 printf("\n输出课程分数(高->低): \n");
 output(scores, N);
 return 0;
}

void input(int x[], int n) {
 int i;
 for (i = 0; i < n; i++)
  scanf_s("%d", &x[i]);
}
void output(int x[], int n) {
 int i;
 for (i = 0; i < n; i++)
  printf("%d ", x[i]);
 printf("\n");
}
double average(int x[], int n) {
 int i, sum=0;
 double av;
 for (i = 0; i < n; i++) {
  sum += x[i];
 }
 av = sum / n;
 return av;
}
void bubble_sort(int x[], int n) {
 int i,j,t;
 for (j = 0; j < n - 1; j++) {
  for (i = 0; i < n - 1; i++) {
   if (x[i] < x[i + 1]) {
    t = x[i];
    x[i] = x[i + 1];
    x[i + 1] = t;
   }
  }
 }
}

 

 任务4

#include<stdio.h>
#define N 100
void dec2n(int x, int n);

int main() {
 int x;
 printf("输入一个十进制整数: ");
 while (scanf_s("%d", &x) != EOF) {
  dec2n(x, 2);
  dec2n(x, 8);
  dec2n(x, 16);
  printf("\n");
 }
 return 0;
}
void dec2n(int x, int n) {
 char k[16] = "0123456789ABCDE";
 char t[N];
 int h, i = 0, j;
 while (x > 0) {
  h = x % n;
  t[i] = k[h];
  i++;
  x /= n;
 }
 j = i;
 for (i = j - 1; i >= 0; i--) {
  printf("%c", t[i]);
 }
 printf("\n");
}

 

 任务5

#include<stdio.h>
#define N 100

void func(int x[][N], int n);
void output(int x[][N], int n);

int main() {
 int x[N][N];
 int i, j, n;

 printf("Enter n: ");
 while (scanf_s("%d", &n) != EOF) {
  func(x, n);
  output(x, n);
  printf("\nEnter n: ");
 }
 return 0;
}
void output(int x[][N], int n) {
 int i, j;
 for (i = 0; i < n; i++) {
  for (j = 0; j < n; j++)
   printf("%5d", x[i][j]);
  printf("\n");
 }
}
void func(int x[][N], int n) {
 int i, j;
 for (i = 0; i < n; i++) {
  for (j = i; j < n; j++) {
   x[i][j] = i + 1;
   x[j][i] = i + 1;
  }
 }
}

 

 任务6

#include<stdio.h>
#include<string.h>
#define N 80
int main() {
 char views1[N] = "hey,C,I have not love u yet.";
 char views2[N] = "hay,C,how can I love u?";
 char t[N];
 printf("交换前: \n");
 printf("views1: %s\n", views1);
 printf("views2: %s\n", views2);
 strcpy_s(t, views1);
 strcpy_s(views1, views2);
 strcpy_s(views2, t);
 printf("交换后: \n");
 printf("views1: %s\n", views1);
 printf("views2: %s\n", views2);
 return 0;
}

 

 

#include<stdio.h>
#include<string.h>
#define N 80
int main() {
 char views[2][N] = { "hey,C,I have not love u yet.","hey,C,how can I love u?" };
 char t[N];
 printf("交换前: \n");
 printf("views1: %s\n", views[0]);
 printf("views2: %s\n", views[1]);
 strcpy_s(t, views[0]);
 strcpy_s(views[0], views[1]);
 strcpy_s(views[1], t);
 printf("交换后: \n");
 printf("views1: %s\n", views[0]);
 printf("views2: %s\n", views[1]);
 return 0;
}

 

 任务7

#include<stdio.h>
#include<string.h>
#define N 5
#define M 20
void bubble_sort(char str[][M], int n);
int main() {
 char name[][M] = { "Bob","Bill","Joseph","Taylor","George" };
 int i;
 printf("输入初始名单:\n");
 for (i = 0; i < N; i++) {
  printf("%s\n", name[i]);
 }
 printf("\n排序中...\n");
 bubble_sort(name, N);
 printf("按字典顺序输出名单:\n");
 for (i = 0; i < N; i++) {
  printf("%s\n", name[i]);
 }
 return 0;
}
void bubble_sort(char str[][M], int n) {
 int i, j;
 char x[M];
 for (i = 0; i < n - 1; i++) {
  for (j = 0; j < n - 1; j++) {
   if (strcmp(str[j], str[j + 1])>0) {
    strcpy_s(x, str[j]);
    strcpy_s(str[j], str[j + 1]);
    strcpy_s(str[j + 1], x);
   }
  }
 }
}

 

posted @ 2022-11-29 22:36  疙瘩宝  阅读(44)  评论(0编辑  收藏  举报