第7章(第四版)C语言程序设计练习
一、例题
1.调用函数,输出
*****************
How do you do
*****************
#include<stdio.h> void print_star() { printf("*****************\n"); } void print_message() { printf("How do you do\n"); } int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; }
2.输入两个整数,输出较大值
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Max(int x, int y) { int z = 0; z = x > y ? x : y; return z; } int main() { int a, b; scanf("%d%d", &a, &b); int max = Max(a, b); printf("%d\n", max); return 0; }
3.
4.输入实数,求和
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Add(int x, int y) { int z = 0; z = x + y; return z; } int main() { int a, b; scanf("%d%d", &a, &b); int sum = Add(a, b); printf("%d\n", sum); return 0; }
5.函数嵌套,输入4个整数,找其中最大的数
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Max(int a, int b,int c,int d) { int z = 0; z = max(a, b); z = max(z, c); z = max(z, d); return z; } int max(int x, int y) { int z = 0; z = x > y ? x : y; return z; } int main() { int a, b, c, d; scanf("%d%d%d%d", &a, &b, &c, &d); int max = Max(a, b,c,d); printf("%d\n", max); return 0; }
6.学生5比学生4大2岁
学生4比学生3大2岁
学生3比学生2大2岁
学生2比学生1大2岁
学生1是10岁
#include<stdio.h> int age(int x) { int c; if (x == 1) { c = 10; } else c = age(x - 1) + 2; return c; } int main() { int age(n); printf("%d", age(5)); return 0; }
7.递归,求n!
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int Fac(int n) { if (n < 0) printf("data error!"); else if (n == 1 || n == 0) return 1; else return n * Fac(n - 1); } int main() { int n = 0; int ret = 0; scanf("%d", &n); ret = Fac(n); printf("%d!=%d\n",n, ret); return 0; }
为负数时候,存在bug
8.汉诺塔问题
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void hanoi(int num, char sou, char tar, char aux) //统计移动次数 { static int i = 1;//static静态变量 //直接从起始柱移动到目标柱 if (num == 1) { printf("第%d次:从 %c 移动至 %c\n", i, sou, tar); i++; } else { //将 num-1 个圆盘从起始柱移动到辅助柱上 hanoi(num - 1, sou, aux, tar); //将起始柱上剩余的最后一个大圆盘移动到目标柱上 printf("第%d次:从 %c 移动至 %c\n", i, sou, tar); i++; //递归调用 hanoi() 函数,将辅助柱上的 num-1 圆盘移动到目标柱上 hanoi(num - 1, aux, tar, sou); } } int main() { //起始柱、目标柱、辅助柱分别用 A、B、C 表示 int m = 0; scanf("%d", &m); hanoi(m, 'A', 'B', 'C'); return 0; }
9.输入10个数,求最大元素和位置
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int max(int x, int y); int arr[10], m, n, i; printf("enter 10 integer number:"); for (i = 0; i < 10; i++) //输入arr[0]~arr[9]的值 { printf("a[%d]=", i + 1); scanf("%d", &arr[i]); } for (i = 1, m = arr[0], n = 0; i < 10; i++) { if (max(m, arr[i]) > m) //max>m,max赋值给m,元素序号赋值给n { m = max(m, arr[i]); n = i; } } printf("The largest number is %d\nit is the %dth number.\n", m, n + 1); } int max(int x, int y) //求最大 { return (x > y ? x : y); }
10.一维数组score,内放10个学生成绩,求平均成绩。
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void main() { float score[10], aver; int i; printf("input 10 scores:\n"); for (i = 0; i < 10; i++)//输入数据 scanf("%f", &score[i]); aver = average(score); printf(" average score is %5.2f\n", aver); } float average(float array[10]) { int i; float aver, sum = array[0]; for (i = 1; i < 10; i++) sum = sum + array[i]; aver = sum / 10; return (aver); }
11、两个班级,35名和30名学生,调用average函数,求两个班级的平均成绩
#include <stdio.h> int main() { float average(float array[], int n); float score1[5] = { 98.5,97,91.5,60,55 }; float score2[10] = { 67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5 }; printf("The average of class A is %6.2f\n", average(score1, 5)); printf("The average of class B is %6.2f\n", average(score2, 10)); return 0; } float average(float array[], int n) { int i; float sum = 0, aver; for (i = 0; i < n; i++) sum = sum + array[i];//累加 aver = sum / n;//求平均 return (aver); }
12.选择法,数组中10个整数由小到大排列
选择法,每轮找最小
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { void sort(int array[], int n); int i; int a[10]; printf("enter array:\n"); for (i = 0; i < 10; i++) scanf("%d", &a[i]); sort(a, 10); printf("The sorted array:\n"); for (i = 0; i < 10; i++) printf("%d ", a[i]); return 0; } void sort(int array[], int n) { int i, t, j, k; for (i = 0; i < n - 1; i++) //n-1轮 { k = i; for (j = i + 1; j < n; j++) //i+1~n中求最小 { if (array[j] < array[k]) { k = j; } } t = array[k]; array[k] = array[i]; array[i] = t; } }
13.3*4矩阵,求最大值
#include <stdio.h> int max_value(int array[][4]) { int i, j, max; max = array[0][0]; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) if (max < array[i][j]) max = array[i][j]; return (max); } int main() { int max_value(int array[][4]); int a[3][4] = { {1,3,5,7},{2,4,6,8},{15,17,34,12} }; printf("Max value is %d\n", max_value(a)); return 0; }
14一维数组,10个学生的成绩,写一个函数,求平均分、最高分和最低分
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { float min(float array[], int n); float max(float array[], int n); float average(float array[], int n); float ave, score[10]; int i; float Max, Min; printf("Please enter 10 score:"); for (i = 0; i < 10; i++) scanf("%f", &score[i]); ave = average(score, 10); Max = max(score, 10); Min = min(score, 10); printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n", Max, Min, ave); return 0; } float average(float array[], int n) { int i; float aver, sum = array[0]; for (i = 1; i < n; i++) { sum = sum + array[i]; } aver = sum / n; return (aver); } float max(float array[], int n) { int i; float max = array[0]; for (i = 1; i < 10; i++) if (max < array[i]) max = array[i]; return (max); } float min(float array[], int n) { int i; float min = array[0]; for (i = 1; i < 10; i++) if (min > array[i]) min = array[i]; return (min); }
15
16.
17输出1~5的阶乘值
#include <stdio.h> #include <math.h> int fac(int b) { //用static保留f的值 static int f = 1; f = f * b; return (f); } int main() { int fac(int b); int i; for (i = 1; i <= 5; i++) printf("%d!=%d\n", i, fac(i)); return 0; }
18.调用函数,求三个整数中最大数
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int max(); extern int A,B,C; printf("Please enter three integer number:"); scanf("%d%d%d",&A,&B,&C); printf("max=%d\n",max()); return 0; } int A,B,C; int max() { int m; m=A>B?A:B; if(m<C) m=C; return (m); }
19. 给定b的值,输入a和m 求a*b和a的m次方的值
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int A; int main() { int power(int); int b = 3, c, d, m; printf("enter the number a and its power m:\n"); scanf("%d,%d", &A, &m); c = A * b; printf("%d*%d=%d\n", A, b, c); d = power(m); printf("%d**%d=%d\n", A, m, d); return 0; } extern A; int power(int n) { int i, y = 1; for (i = 1; i <= n; i++) y *= A; return (y); }
20.有一个字符串,内有若干个字符,现输入一个字符要求程序删除字符串中的该字符
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void enter_string(char str[80]) { gets(str); } void delete_string(char str[], char ch) { int i, j; for (i = j = 0; str[i] != '\0'; i++) { if (str[i] != ch) str[j++] = str[i];//j++(后置++,先使用,后++) } str[j] = '\0'; } void print_string(char str[]) { printf("%s\n", str); } int main() { void enter_string(char str[]); void delete_string(char str[], char ch); void print_string(char str[]); char c, str[80]; enter_string(str);//str中存放输入的字符 scanf("%c", &c);//要删去的字符 delete_string(str, c);// print_string(str); return 0; }
二、习题
1.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int hcf(int, int); int lcd(int, int, int); int u, v, h, l; scanf("%d,%d", &u, &v); h = hcf(u, v); printf("H.C.F=%d\n", h); l = lcd(u, v, h); printf("L.C.D=%d\n", l); return 0; } int hcf(int u, int v) { int t, r; if (v > u) { t = u; u = v; v = t; } while ((r = u % v) != 0) { u = v; v = r; } return(v); } int lcd(int u, int v, int h) { return(u * v / h); }
2.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> float x1, x2, disc, p, q; int main() { void greater_than_zero(float, float); void equal_to_zero(float, float); void smaller_than_zero(float, float); float a, b, c; printf("input a,b,c:"); scanf("%f,%f,%f", &a, &b, &c); printf("equation: %5.2f*x*x+%5.2f*x+%5.2f=0\n", a, b, c); disc = b * b - 4 * a * c; printf("root:\n"); if (disc > 0) { greater_than_zero(a, b); printf("x1=%f\t\tx2=%f\n", x1, x2); } else if (disc == 0) { equal_to_zero(a, b); printf("x1=%f\t\tx2=%f\n", x1, x2); } else { smaller_than_zero(a, b); printf("x1=%f+%fi\tx2=%f-%fi\n", p, q, p, q); } return 0; } void greater_than_zero(float a, float b) { x1 = (-b + sqrt(disc)) / (2 * a); x2 = (-b - sqrt(disc)) / (2 * a); } void equal_to_zero(float a, float b) { x1 = x2 = (-b) / (2 * a); } void smaller_than_zero(float a, float b) { p = -b / (2 * a); q = sqrt(-disc) / (2 * a); }
3.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int prime(int); int n; printf("input an integer:"); scanf("%d", &n); if (prime(n)) printf("%d is a prime.\n", n); else printf("%d is not a prime.\n", n); return 0; } int prime(int n) { int flag = 1, i; for (i = 2; i < n / 2 && flag == 1; i++) if (n % i == 0) flag = 0; return(flag); }
4.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define N 3 int array[N][N]; int main() { void convert(int array[][3]); int i, j; printf("input array:\n"); for (i = 0; i < N; i++) for (j = 0; j < N; j++) scanf("%d", &array[i][j]); printf("\noriginal array :\n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) printf("%5d", array[i][j]); printf("\n"); } convert(array); printf("convert array:\n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) printf("%5d", array[i][j]); printf("\n"); } return 0; } void convert(int array[][3]) { int i, j, t; for (i = 0; i < N; i++) for (j = i + 1; j < N; j++) { t = array[i][j]; array[i][j] = array[j][i]; array[j][i] = t; } }
5
#include <stdio.h> #include <string.h> int main() {void inverse(char str[]); char str[100]; printf("input string:"); scanf("%s",str); inverse(str); printf("inverse string:%s\n",str); return 0; } void inverse(char str[]) {char t; int i,j; for (i=0,j=strlen(str);i<(strlen(str)/2);i++,j--) {t=str[i]; str[i]=str[j-1]; str[j-1]=t; } }
6.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { void concatenate(char string1[], char string2[], char string[]); char s1[100], s2[100], s[100]; printf("input string1:"); scanf("%s", s1); printf("input string2:"); scanf("%s", s2); concatenate(s1, s2, s); printf("\nThe new string is %s\n", s); return 0; } void concatenate(char string1[], char string2[], char string[]) { int i, j; for (i = 0; string1[i] != '\0'; i++) string[i] = string1[i]; for (j = 0; string2[j] != '\0'; j++) string[i + j] = string2[j]; string[i + j] = '\0'; }
7
#include <stdio.h> int main() { void cpy(char[], char[]); char str[80], c[80]; printf("input string:"); gets(str); cpy(str, c); printf("The vowel letters are:%s\n", c); return 0; } void cpy(char s[], char c[]) { int i, j; for (i = 0, j = 0; s[i] != '\0'; i++) if (s[i] == 'a' || s[i] == 'A' || s[i] == 'e' || s[i] == 'E' || s[i] == 'i' || s[i] == 'I' || s[i] == 'o' || s[i] == 'O' || s[i] == 'u' || s[i] == 'U') { c[j] = s[i]; j++; } c[j] = '\0'; }
8.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char str[80]; void insert(char[]); printf("input four digits:"); scanf("%s", str); insert(str); return 0; } void insert(char str[]) { int i; for (i = strlen(str); i > 0; i--) { str[2 * i] = str[i]; str[2 * i - 1] = ' '; } printf("output:\n%s\n", str); }
9.
#include <stdio.h> int letter, digit, space, others; int main() { void count(char[]); char text[80]; printf("input string:\n"); gets(text); printf("string:"); puts(text); letter = 0; digit = 0; space = 0; others = 0; count(text); printf("\nletter:%d\ndigit:%d\nspace:%d\nothers:%d\n", letter, digit, space, others); return 0; } void count(char str[]) { int i; for (i = 0; str[i] != '\0'; i++) if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) letter++; else if (str[i] >= '0' && str[i] <= '9') digit++; else if (str[i] == 32) space++; else others++; }
10
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { int alphabetic(char); int longest(char[]); int i; char line[100]; printf("input one line:\n"); gets(line); printf("The longest word is :"); for (i = longest(line); alphabetic(line[i]); i++) printf("%c", line[i]); printf("\n"); return 0; } int alphabetic(char c) { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'z')) return(1); else return(0); } int longest(char string[]) { int len = 0, i, length = 0, flag = 1, place = 0, point; for (i = 0; i <= strlen(string); i++) if (alphabetic(string[i])) if (flag) { point = i; flag = 0; } else len++; else { flag = 1; if (len >= length) { length = len; place = point; len = 0; } } return(place); }
11
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #define N 10 char str[N]; int main() { void sort(char[]); int i, flag; for (flag = 1; flag == 1;) { printf("input string:\n"); scanf("%s", &str); if (strlen(str) > N) printf("string too long,input again!"); else flag = 0; } sort(str); printf("string sorted:\n"); for (i = 0; i < N; i++) printf("%c", str[i]); printf("\n"); return 0; } void sort(char str[]) { int i, j; char t; for (j = 1; j < N; j++) for (i = 0; (i < N - j) && (str[i] != '\0'); i++) if (str[i] > str[i + 1]) { t = str[i]; str[i] = str[i + 1]; str[i + 1] = t; } }
12
#include <stdio.h> #include <math.h> int main() {float solut(float a,float b,float c,float d); float a,b,c,d; printf("input a,b,c,d:"); scanf("%f,%f,%f,%f",&a,&b,&c,&d); printf("x=%10.7f\n",solut(a,b,c,d)); return 0; } float solut(float a,float b,float c,float d) {float x=1,x0,f,f1; do {x0=x; f=((a*x0+b)*x0+c)*x0+d; f1=(3*a*x0+2*b)*x0+c; x=x0-f/f1; } while(fabs(x-x0)>=1e-3); return(x); }
13
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define N 10 #define M 5 float score[N][M]; float a_stu[N], a_cour[M]; int r, c; int main() { int i, j; float h; float s_var(void); float highest(); void input_stu(void); void aver_stu(void); void aver_cour(void); input_stu(); aver_stu(); aver_cour(); printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for (i = 0; i < N; i++) { printf("\n NO %2d ", i + 1); for (j = 0; j < M; j++) printf("%8.2f", score[i][j]); printf("%8.2f\n", a_stu[i]); } printf("\naverage:"); for (j = 0; j < M; j++) printf("%8.2f", a_cour[j]); printf("\n"); h = highest(); printf("highest:%7.2f NO. %2d course %2d\n", h, r, c); printf("variance %8.2f\n", s_var()); return 0; } void input_stu(void) { int i, j; for (i = 0; i < N; i++) { printf("\ninput score of student%2d:\n", i + 1); for (j = 0; j < M; j++) scanf("%f", &score[i][j]); } } void aver_stu(void) { int i, j; float s; for (i = 0; i < N; i++) { for (j = 0, s = 0; j < M; j++) s += score[i][j]; a_stu[i] = s / 5.0; } } void aver_cour(void) { int i, j; float s; for (j = 0; j < M; j++) { s = 0; for (i = 0; i < N; i++) s += score[i][j]; a_cour[j] = s / (float)N; } } float highest() { float high; int i, j; high = score[0][0]; for (i = 0; i < N; i++) for (j = 0; j < M; j++) if (score[i][j] > high) { high = score[i][j]; r = i + 1; c = j + 1; } return(high); } float s_var(void) { int i; float sumx, sumxn; sumx = 0.0; sumxn = 0.0; for (i = 0; i < N; i++) { sumx += a_stu[i] * a_stu[i]; sumxn += a_stu[i]; } return(sumx / N - (sumxn / N) * (sumxn / N)); }
14
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define N 10 #define M 5 float score[N][M]; float a_stu[N], a_cour[M]; int r, c; int main() { int i, j; float h; float s_var(void); float highest(); void input_stu(void); void aver_stu(void); void aver_cour(void); input_stu(); aver_stu(); aver_cour(); printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for (i = 0; i < N; i++) { printf("\n NO %2d ", i + 1); for (j = 0; j < M; j++) printf("%8.2f", score[i][j]); printf("%8.2f\n", a_stu[i]); } printf("\naverage:"); for (j = 0; j < M; j++) printf("%8.2f", a_cour[j]); printf("\n"); h = highest(); printf("highest:%7.2f NO. %2d course %2d\n", h, r, c); printf("variance %8.2f\n", s_var()); return 0; } void input_stu(void) { int i, j; for (i = 0; i < N; i++) { printf("\ninput score of student%2d:\n", i + 1); for (j = 0; j < M; j++) scanf("%f", &score[i][j]); } } void aver_stu(void) { int i, j; float s; for (i = 0; i < N; i++) { for (j = 0, s = 0; j < M; j++) s += score[i][j]; a_stu[i] = s / 5.0; } } void aver_cour(void) { int i, j; float s; for (j = 0; j < M; j++) { s = 0; for (i = 0; i < N; i++) s += score[i][j]; a_cour[j] = s / (float)N; } } float highest() { float high; int i, j; high = score[0][0]; for (i = 0; i < N; i++) for (j = 0; j < M; j++) if (score[i][j] > high) { high = score[i][j]; r = i + 1; c = j + 1; } return(high); } float s_var(void) { int i; float sumx, sumxn; sumx = 0.0; sumxn = 0.0; for (i = 0; i < N; i++) { sumx += a_stu[i] * a_stu[i]; sumxn += a_stu[i]; } return(sumx / N - (sumxn / N) * (sumxn / N)); }
15
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define N 10 #define M 5 float score[N][M]; float a_stu[N], a_cour[M]; int r, c; int main() { int i, j; float h; float s_var(void); float highest(); void input_stu(void); void aver_stu(void); void aver_cour(void); input_stu(); aver_stu(); aver_cour(); printf("\n NO. cour1 cour2 cour3 cour4 cour5 aver\n"); for (i = 0; i < N; i++) { printf("\n NO %2d ", i + 1); for (j = 0; j < M; j++) printf("%8.2f", score[i][j]); printf("%8.2f\n", a_stu[i]); } printf("\naverage:"); for (j = 0; j < M; j++) printf("%8.2f", a_cour[j]); printf("\n"); h = highest(); printf("highest:%7.2f NO. %2d course %2d\n", h, r, c); printf("variance %8.2f\n", s_var()); return 0; } void input_stu(void) { int i, j; for (i = 0; i < N; i++) { printf("\ninput score of student%2d:\n", i + 1); for (j = 0; j < M; j++) scanf("%f", &score[i][j]); } } void aver_stu(void) { int i, j; float s; for (i = 0; i < N; i++) { for (j = 0, s = 0; j < M; j++) s += score[i][j]; a_stu[i] = s / 5.0; } } void aver_cour(void) { int i, j; float s; for (j = 0; j < M; j++) { s = 0; for (i = 0; i < N; i++) s += score[i][j]; a_cour[j] = s / (float)N; } } float highest() { float high; int i, j; high = score[0][0]; for (i = 0; i < N; i++) for (j = 0; j < M; j++) if (score[i][j] > high) { high = score[i][j]; r = i + 1; c = j + 1; } return(high); } float s_var(void) { int i; float sumx, sumxn; sumx = 0.0; sumxn = 0.0; for (i = 0; i < N; i++) { sumx += a_stu[i] * a_stu[i]; sumxn += a_stu[i]; } return(sumx / N - (sumxn / N) * (sumxn / N)); }
16.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define MAX 1000 int main() { int htoi(char s[]); int c, i, flag, flag1; char t[MAX]; i = 0; flag = 0; flag1 = 1; printf("input a HEX number:"); while ((c = getchar()) != '\0' && i < MAX && flag1) { if (c >= '0' && c <= '9' || c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F') { flag = 1; t[i++] = c; } else if (flag) { t[i] = '\0'; printf("decimal number %d\n", htoi(t)); printf("continue or not?"); c = getchar(); if (c == 'N' || c == 'n') flag1 = 0; else { flag = 0; i = 0; printf("\ninput a HEX number:"); } } } return 0; } int htoi(char s[]) { int i, n; n = 0; for (i = 0; s[i] != '\0'; i++) { if (s[i] >= '0' && s[i] <= '9') n = n * 16 + s[i] - '0'; if (s[i] >= 'a' && s[i] <= 'f') n = n * 16 + s[i] - 'a' + 10; if (s[i] >= 'A' && s[i] <= 'F') n = n * 16 + s[i] - 'A' + 10; } return(n); }
17
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { void convert(int n); int number; printf("input an integer: "); scanf("%d", &number); printf("output: "); if (number < 0) { putchar('-'); putchar(' '); /* 先输出一个‘-’号和空格 */ number = -number; } convert(number); printf("\n"); return 0; } void convert(int n) { int i; if ((i = n / 10) != 0) convert(i); putchar(n % 10 + '0'); putchar(32); }
18
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int sum_day(int month, int day); int leap(int year); int year, month, day, days; printf("input date(year,month,day):"); scanf("%d,%d,%d", &year, &month, &day); printf("%d/%d/%d ", year, month, day); days = sum_day(month, day); // 调用函数sum_day if (leap(year) && month >= 3) // 调用函数leap days = days + 1; printf("is the %dth day in this year.\n", days); return 0; } int sum_day(int month, int day) // 函数sum_day:计算日期 { int day_tab[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int i; for (i = 1; i < month; i++) day += day_tab[i]; // 累加所在月之前天数 return(day); } // 函数leap:判断是否为闰年 int leap(int year) { int leap; leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0; return(leap); }

浙公网安备 33010602011771号