C程序设计课后练习题(谭浩强,第四版)


C程序设计课后练习题(1250/4)


下面是我写的书后的练习题是用vs2015实现的
代码有很多混乱的部分,,但是基本是可以实现的。
有些个别数学问题没有完成。


第一章

4.

例1
#include<stdio.h>
int main() {
	printf("this is a C program.\n");
	getchar();

	return 0;
}

例2
#include<stdio.h>
int main() {
	int a, b, sum;
	a = 123;
	b = 456;
	sum = a + b;
	printf("sum is %d\n", sum);
	getchar();

	return 0;
}

例3
#include<stdio.h>
#include<stdlib.h>

int most(int a, int b){
	int c=0;
	if (a > b){
		c = a;
	}
	else
		c = b;

	return c;
}

int main(){
	int a, b, c;

	printf("请输入两个数字(a b):");
	scanf_s("%d,%d", &a, &b);
	c = most(a, b);

	system("cls");
	printf("c is %d", c);


	return 0;
}

5.
#include<stdio.h>

int main(){
	printf("***********************\nVery good!\n***********************\n");

	return 0;
}

6.
#include<stdio.h>
#include<stdlib.h>

int most(int a, int b, int c){
	if (a < b)
		a = b;
	if (a < c)
		a = c;

	return a;
}

int main(){
	int a=0, b=0, c=0;
	printf("请输入三个数字(用回车分隔):");
	scanf("%d%d%d",&a,&b,&c);

	c=most(a, b, c);
	system("cls");
	printf("most:%d", c);

	return 0;
}

第二章

4.
(2)/*输入十个数,输入最大的*/
#include<stdio.h>

int main(){
	int a[10] = {0};
	int i = 0;
	for (; i <10; i++){
		printf("请输入的%d个输出:", i + 1);
		scanf("%d",&a[i]);
		if (a[0] < a[i]){
			int u = 0;
			u = a[0];
			a[0] = a[i];
			a[i] = u;
		}
			

	}

	
		printf("最大:%d\n", a[0]);
	

	return 0;
}

(3)/*有三个数,按大小顺序输出它们*/
#include<stdio.h>

void t(int* a, int* b){
	int c;
	c = *a;
	*a = *b;
	*b = c;
}

int main(){
	int a[] = {66,99,101};
	
	if (a[0] < a[1])
		t(&a[0], &a[1]);
	
	if (a[0] < a[2])
		t(&a[0], &a[2]);

	if (a[1] < a[2]);
		t(&a[1], &a[2]);

		for (int i = 0; i < 3; i++){
			printf("第%d个数:%d\n", i + 1, a[i]);
		}

	return 0;
}

(4)/*求1+2+3+4+5+6+7+。。。+100*/
#include<stdio.h>

int main(){
	int sum = 0;

	for (int i = 1; i < 101; i++){
		sum = sum + i;
	}

	printf("1+2+3+4+5+6+7+。。。+100=%d", sum);

	return 0;
}

(5)/*判断一个数n能否被3和5同时整除*/
#include<stdio.h>

int main(){
	int n = 37;
	if (n%15 == 0)
		printf("可以\n");
	else
		printf("不行\n");

	return 0;
}

(6)/*将100到200之间的素数输出*/
#include<stdio.h>
#include<math.h>

int t(int a){
	int i = 1;
	int j = 1;
	while (i<sqrt(a)){
		i++;
		if (a%i == 0){
			j = 0;
			break;
		}
	}

	return j;
}

int main(){
	for (int i = 100; i <= 200; i++){
		if (t(i))
			printf("%d\n",i);
	}

	return 0;
}

(7)/*求两个数n和m的最大公约数*/
#include<stdio.h>
//#include<math.h>

int main(){
	int n = 228, m = 329;
	int j = 1;

	if (n < m){
		int c = 0;
		c = n;
		n = m;
		m = c;
	}

	for (int i=1; i <= n; i++){
		if (n%i == 0 && m%i == 0)
			j = i;
	}

	printf("最大公约数:%d\n", j);


	return 0;
}

5/6./*求两个数n和m的最大公约数*/
#include<stdio.h>

int main(){
	float sum = 0;

	for (float i = 1,j=1; i <= 100; i++,j=j*(-1)){
		sum = sum + 1 / i*j;
	}

	printf("sum=%f\n", sum);


	return 0;
}/*求两个数n和m的最大公约数*/
#include<stdio.h>

int main(){
	float sum = 0;

	for (float i = 1,j=1; i <= 100; i++,j=j*(-1)){
		sum = sum + 1 / i*j;
	}

	printf("sum=%f\n", sum);


	return 0;
}

8.(1)/*1900-2000中闰年的年份*/
#include<stdio.h>

int main(){
	for (int i = 1900; i <= 2000; i++){
		if (((i % 4 == 0) && (i % 100 != 0) )|| ((i % 100 == 0) && (i % 400 == 0)))
			printf("%i\n", i);
	}


	return 0;
}

(2)/*二次方程求根*/
#include<stdio.h>
#include<math.h>

int main(){
	float a = 1.000, b = 6.000, c = 3.000;
	if ((b*b - 4 * a*c) > 0)
		printf("根为:%f、%f\n", (-b + (sqrt(b*b - 4 * a*c))) / 2 * a, (-b - (sqrt(b*b - 4 * a*c))) / 2 * a);
	else if ((b*b - 4 * a*c) == 0)
		printf("根为:%f\n", (-b + (sqrt(b*b - 4 * a*c))) / 2 * a);
	else
		printf("无根\n");

	

	return 0;
}

(3)/*输入十个数,输出其中最大的数*/
#include<stdio.h>

int main(){
	int a[10] = {0};
	//输入
	for (int i = 1; i <= 10; i++){
		printf("请输入第%d个数:", i);
		scanf_s("%d",&a[i-1]);
	}
	//排序(冒泡排序)
	int x=0;
	for (int i = 0; i < 10; i++){
		for (int j =0; j < 10-i;j++){
			if (a[j] < a[j+1]){
				x = a[j];
				a[j] = a[j + 1];
				a[j + 1] = x;
			}
		}
	}
	//输出

	printf("%d\n", a[0]);

	return 0;
}

第三章

1./*计算一9%增长的国民生产总值,十年后是现在的多少倍*/
#include<stdio.h>
#include<math.h>

int main(){
	float p = 0, r = 0.09, n = 10;

	p = pow(1 + r, n);
	printf("p=%f", p);

	return 0;
}

2./*计算一9%增长的国民生产总值,十年后是现在的多少倍*/
#include<stdio.h>
#include<math.h>

int main(){
	float p1=0.0414,p2=0.0468,p3=0.054,p5=0.0585,
		p=0.0072,
		plan1 = 0, plan2 = 0, plan3 = 0, plan4 = 0, plan5 = 0 ;

	plan1 = 1000*(1 + p5 * 5);
	plan2 = 1000 * (1 + p3 * 3)*(1 + p2 * 2);
	plan3 = 1000 * (1 + p2 * 2)*(1 + p3 * 3);
	plan4 = 1000 * pow((1 + p1), 5);
	plan5 = 1000 * pow((1 + p), 4 * 5);

	printf("plan1=%f\nplan2=%f\nplan3=%f\nplan4=%f\nplan5=%f\n", plan1, plan2, plan3, plan4, plan5 );

	return 0;
}

3./*300000还6000,利息是1%要换几个月*/
#include<stdio.h>
#include<math.h>

int main(){
	float m = 0, p = 6000, d = 300000, r = 0.01;
	int mm = 0, mmm=0;

	m = (log10(p) - log10(p - d*r)) / log10(1 + r);
	mm = m * 100;
	if (mm = mm % 10 > 4){
		mmm = 1;
	}
	mm = m * 100 + mmm;
	m = mm ;
	m = m *0.01;//不知到为什么会出现许多莫名其妙的小数位
	printf("m=%f\n", m );

	return 0;
}

6./*China译成密码,分别用printf和scanf输出*/
#include<stdio.h>

int main(){
	char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4;

	printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5);
	putchar(c1);
	putchar(c2);
	putchar(c3);
	putchar(c4);
	putchar(c5);

	return 0;
}

7./*计算圆的各项数据*/
#include<stdio.h>
#include<math.h>

int main(){
	double r = 1.5, h = 3, c = 0, cs = 0, vs = 0, cv = 0, vv = 0;

	vs = pow(r, 2)*3.14 * 4;
	printf("球体的表面积:%f\n", vs);

	return 0;
}

8./*关于getchar*/
#include<stdio.h>
#include<math.h>

int main(){
	int c1, c2;

	c1=getchar();
	c2=getchar();

	printf("%c,%c\n%d,%d\n", c1, c2, c1, c2);
	putchar(c1);
	putchar(c2);

	return 0;
}

第四章

6./*输入x,输出y,*/
#include<stdio.h>
#include<stdlib.h>

int main(){
	int x = 0, y = 0;

	printf("请输入x:");
	scanf("%d", &x);

	if (x < 1)
		y = x;
	else if (x >= 1 && x < 10)
		y = 2 * x - 1;
	else
		y = 3*x - 11;

	printf("y=%d\n", y);
	

	return 0;
}

8./*输入成绩,输出成绩等级*/
#include<stdio.h>

int main(){
	int a=0;
	char b='A';
	printf("请输入成绩:");
	scanf_s("%d",&a);

	if (a <= 100 && a >= 90)
		b = 'A';
	else if (a < 90 && a >= 80)
		b = 'B';
	else if (a < 80 && a >= 70)
		b = 'C';
	else if (a < 70 && a >= 60)
		b = 'D';
	else if (a < 60 && a >= 0)
		b = 'E';

	printf("%c", b);

	return 0;
}

9./*输入一个不多于5位的正整数,给出对应的输出*/
#include<stdio.h>

int main(){
	int a=0;
	int b1 = 0,b2 = 0, b3 = 0, b4 = 0, b5 = 0;

	printf("请输入一个不多于五位的整数:");
	scanf_s("%d", &a);
	//有几位数
	if (a - 10000 >= 0)
		printf("万\n");
	else if (a - 1000 >= 0)
		printf("千\n");
	else if (a - 100 >= 0)
		printf("百\n");
	else if (a - 10 >= 0)
		printf("十\n");
	else
		printf("个\n");
	

	//各位数的值
	b1 = (a / 10000)%10;
	b2 = (a / 1000)%10;
	b3 = (a / 100)%10;
	b4 = (a / 10)%10;
	b5 = (a / 1)%10;
	printf("个:%d十:%d百:%d千:%d万:%d",b1,b2,b3,b4,b5);
	printf("\n");

	//按逆序输出个位数字
	if (b5+b4+b3+b2+b1!=0)
		printf("%d",b5);
	if (b4 + b3 + b2 + b1 != 0)
		printf("%d", b4);
	if (b3 + b2 + b1 != 0)
		printf("%d", b3);
	if (b2 + b1 != 0)
		printf("%d", b2);
	if (b1 != 0)
		printf("%d", b1);

	return 0;
}

10./*计算奖金*/
#include<stdio.h>

int main(){
	float a = 0,b=0,sum=0;

	printf("请输入利润:");
	scanf_s("%f", &a);
	if (a >0)
		sum =  a*0.1;
	if (a > 100000)
		sum = sum - (a - 100000)* 0.025;
	if (a > 200000)
		sum = sum - (a - 200000)*0.025;
	if (a > 400000)
		sum = sum - (a - 400000)* 0.02;
	if (a > 600000)
		sum = sum - (a - 600000)* 0.015;
	if (a > 1000000)
		sum = sum - (a - 1000000)* 0.005;

	printf("sum=%10.2lf\n", sum);

	return 0;
}

12./*输入一点判断其高度*/
#include<stdio.h>
#include<math.h>

int main(){
	float x = 0, y = 0;
	int h = 0;

	printf("请输入x:");
	scanf_s("%f", &x);
	printf("请输入y:");
	scanf_s("%f", &y);

	if (sqrt((2 - x)*(2 - x) + (2 - y)*(2 - y) )<= 1
		|| sqrt((-2 - x)*(-2 - x) + (2 - y)*(2 - y)) <= 1
		|| sqrt((2 - x)*(2 - x) + (-2 - y)*(-2 - y)) <= 1
		|| sqrt((-2 - x)*(-2 - x) + (-2 - y)*(-2 - y)) <= 1)
		h = 10;

	printf("h=%d\n",h);

	return 0;
}

第五章

3./*输入两个整数求其最小公倍数和最大公约数*/
#include<stdio.h>

int main(){
	int m = 0, n = 0;
	int a = 6, b = 3;
	
	printf("请输入第一个整数(较小):");
	scanf_s("%d", &a);
	printf("请输入第二个整数(较大):");
	scanf_s("%d", &b);
	
	for (int i = a; i >0; i--){
		if ((a%i == 0) && (b%i == 0)){
			n = i;
			break;
		}
	}

	m = (a / n)*b;

	printf("最大公因子为:%d,最小公倍数为;%d\n", n, m);

	return 0;
}

4./*输入一行字符串,统计之中英文字母、空格、数字和其他字符的个数*/
#include<stdio.h>

int main(){
	char text[128] = { 0 };
	int a = 0;//字母
	int b = 0;//空格
	int c = 0;//数字
	int d = 0;//其它字符

	printf("请输入:");
	gets(text);
	for (int i = 0; text[i] != 0; i++){
		if ((text[i] <= 122 && text[i] >= 97) || (text[i] <= 90 && text[i] >= 65))
			a = a + 1;
		else if (text[i] == 32)
			b = b + 1;
		else if (text[i] <= 57 && text[i] >= 48)
			c = c + 1;
		else
			d = d + 1;
	}

	printf("字母个数:%d,空格字数:%d,数字个数:%d,其它字符:%d\n", a, b, c, d);

	return 0;
}

5./*求a+aa+aaa+aaaa+aaaaa+n个a*/
#include<stdio.h>
#include<math.h>

int main(){
	int a = 3;
	int n = 4;
	int sum = 0;

	for (int i = 0; i < n; i++){
		sum = sum + a*pow(10, i)*(n-i);
	}
	printf("sum=%d\n", sum);

	return 0;
}

6./*求1!+2!+3!+4!+。。。+20!*/
#include<stdio.h>

int main(){
	int sum = 0;

	for (int i = 1; i <= 9; i++){
		int k = 1;
		for (int j = 1; j <= i; j++){
			k = k*j;
		}
		sum = sum + k;
	}
	printf("sum=%d\n", sum);

	return 0;
}

7./*100Σk=1(k)+50Σk=1(k^2)+10Σk=1(1/k)*/
#include<stdio.h>

int main(){
	float sum = 0;

	for (int i = 0; i < 100; i++){
		sum = sum + (i+1);
	}
	
	for (int i = 0; i < 50; i++){
		sum = sum + (i + 1)*(i + 1);
	}

	for (float i = 0; i < 10; i++){
		sum = sum + 1 / (i + 1);
	}

	printf("sum=%f\n", sum);


	return 0;
}

8./*输出所有水仙花数*/
#include<stdio.h>

int main(){
	for (int i = 1; i <= 9; i++){
		for (int j = 0; j <= 9; j++){
			for (int k = 0; k <= 9; k++){
				if (i*i*i + j*j*j + k*k*k == i * 100 + j * 10 + k)
					printf("%d%d%d\n", i, j, k);
			}
		}
	}

	return 0;
}

9./*输出1000以内的所有完数并输出其因子*/
#include<stdio.h>

int main(){
	int sum = 0;

	for (int i = 1; i <= 1000; i++){
		sum = 0;
		for (int j = 1; j < i; j++){
			if (i%j == 0){
				sum = sum + j;
			}
		}
		if (sum == i){
			printf("%d\n", i);
			for (int j = 1; j < i; j++){
				if (i%j == 0)
					printf("因子:%d", j);
			}
			printf("\n");
		}
	}

	return 0;
}

10./*输出1000以内的所有完数并输出其因子*/
#include<stdio.h>

int main(){
	float sum = 0;
//	float c[21];
	//c[0] = 1;
	//c[1] = 2;
	float a = 1, b = 2,c=0;

	/*for (int i = 2; i <= 21; i++){
		c[i] = c[i - 1] + c[i - 2];
	}
	for (int i = 1; i < 21; i++){
		sum = sum + c[i] / c[i - 1];
	}*/

	for (int i = 0; i < 20; i++){
		sum = sum + b / a;
		c = a;
		a = b;
		b = c + b;
	}

	printf("sum=%lf\n", sum);

	return 0;
}

11./*一个球每次弹一半(从100米开始),弹十次经过多少米,第十次反弹多高*/
#include<stdio.h>

int main(){
	float l = 100;
	float s = 0;

	for (int i = 0; i < 9; i++){
		s = s+l * 3 / 2;
		l = l / 2;
	}
	printf("s=%f,s=%f\n", s, l);

	return 0;
}

12./*吃了九次桃(每次*1/2+1),还剩一个桃,求没吃时多少桃子*/
#include<stdio.h>

int main(){
	int sum = 1, a = 1;
	for (int i = 0; i < 9; i++){
		sum = (sum + 1) * 2;
	}

	printf("sum=%d\n", sum);

	return 0;
}

13./*用迭代法算x=sqrt(a)*/
#include<stdio.h>

int main(){
	float a = 2,x=0;
	float n =1 , m = 0;

	for (int i=1;i<10/*n - m > 0.1||n-m<-0.1*/;i++){//1.#INF0000 不知到怎么处理
		x = m;
		m = (n + a / n) / 2;
		n = x;
	}
	printf("m=%f\n", m);

	return 0;
}

14./*用牛顿迭代法求2x^3-4x^2+3x-6=0在1.5附近的根*/
#include<stdio.h>
#include<math.h>

int main(){
	float x = 0, y = 0, y000=0,x1 = 1.5, x2 = 0;

	y = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
	y000 = 6 * pow(x, 2) - 8 * x + 3 ;

	for (int i = 0; i < 6; i++){
		x = x1;
		y = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
		y000 = 6 * pow(x, 2) - 8 * x + 3;
		x1 = x - y / y000;
	}

	printf("x1=%f\n", x1);

	return 0;
}

15./*用二分法求2x^3-4x^2+3x-6=0在(-10,10)之间的根*/
#include<stdio.h>
#include<math.h>

int main(){
	float x = 0, yc = 0, ya = 0,yb=0;
	
	float a = -10, b = 10,c=0;

	for (int i=0;i<100;i++){
		c = (a + b) / 2;
		x = c;
		yc = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
		x = a;
		ya = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
		x = b;
		yb = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
			
		if (yb*yc<0)
			a = c;
		else if (ya*yc<0)
			b = c;
		else
			break;
	}

	printf("c=%f\n", c);

	/*float x = 1.25,y=0;
	y = 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;*/


	return 0;
}

16./*输出以下图案*/
/*

   *
  ***
 *****
*******
 *****
  ***
   *

*/
#include<stdio.h>

int main(){
	for (int i = 0; i < 4; i++){
		for (int j = 0+i; j < 3; j++)
			printf(" ");
		for (int k = 0; k < 1+i*2; k++)
			printf("*");
		printf("\n");
		
	}

	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 1+i; j++)
			printf(" ");
		for (int k = 0; k < 5 - i * 2; k++)
			printf("*");
		printf("\n");

	}

	return 0;
}

17./*输出比赛名单*/
#include<stdio.h>

void sc(int a,int b,int c){
	if (a != 1 && c != 1 && c != 3)
		printf("a=%d,b=%d,c=%d\n", a, b, c);
}

int main(){
	//int n[3] = { 1, 2, 3 };
	int a = 1, b =2, c =3;
	sc(a, b, c);

	a = 1, b = 3, c = 2;
	sc(a, b, c);

	a = 2, b = 1, c = 3;
	sc(a, b, c);

	a = 2, b = 3, c = 1;
	sc(a, b, c); 

	a = 3, b = 1, c = 2;
	sc(a, b, c); 

	a = 3, b = 2, c = 1;
	sc(a, b, c);

	return 0;
}

第六章

1./*求100以内的素数*/
#include<stdio.h>
#include<math.h>

void xz(int a){
	for (int i = 2; i <= sqrt(a); i++){
		if (a%i == 0){
			return;
		}
	}
	printf("%d\n",a);
}

int main(){
	for (int i = 2; i < 101; i++)
		xz(i);

	return 0;
}

3./*求一个3*3整型矩阵对角线元素之和*/
#include<stdio.h>

int main(){
	int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
	int sum = 0;

	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			if (i == j)
				sum = sum + a[i][j];
		}
	}

	printf("sum=%d\n", sum);

	return 0;
}

4./*有一个已排好序的数组,要求按顺序插入一个数*/
#include<stdio.h>

int main(){
	int a[9] = { 9, 7, 5, 4, 3, 1 };
	int b = 6,t=0;

	for (int i = 0; i < 9; i++){
		if (a[i] < b){
			for (; i < 9; i++){
				t = a[i];
				a[i] = b;
				b = t;
			}
		}
	}

	for (int i = 0; i < 9; i++){
		printf("a[%d]=%d\n", i, a[i]);
	}

	return 0;
}

5./*将一个数组逆序后存放*/
#include<stdio.h>

int main(){
	int a[10] = { 1, 2, 3, 4, 5, 6 };

	for (int i = 0; i < 10; i++){
		printf("a[%d]=%d\n", i, a[i]);
	}

	for (int i = 0; i < 10/2; i++){
		int x = 0;
		x = a[i];
		a[i] = a[9 - i];
		a[9 - i] = x;
	}

	for (int i = 0; i < 10; i++){
		printf("a[%d]=%d\n", i, a[i]);
	}
	

	return 0;
}

6./*输出杨辉三角的前十行*/
#include<stdio.h>

int main(){
	int a[10][10] = { 0 };
	a[0][0] = 1;
	a[1][0] = 1;
	a[1][1] = 1;
	//写入所有的‘1’
	for (int i = 0; i < 10; i++){
		a[i][0] = 1; 
		a[i][i] = 1;
	}
	//写入剩下的数
	for (int i = 2; i < 10; i++){
		for (int j = 1; j < i; j++){
			a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
		}
	}
	//输出
	for (int i = 0; i < 10; i++){
		for (int j = 0; j <= i; j++){
			printf("%d",a[i][j]);
		}
		printf("\n");
	}

	

	return 0;
}

7./*输出一个1-n^2的幻方,没解出来*/
#include<stdio.h>

int main(){
	int n = 4;
	int a[4][4];

	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			a[i][j] = i * n + j +1;
		}
	}

	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			printf("%3d", a[i][j]);
		}
		printf("\n");
	}
	//横
	for (int i = 0; i < n; i++){
		int sum = 0;
		for (int j = 0 ; j < n; j++){
			sum = sum + a[i][j];
		}
		printf("sum=%d\n", sum);
	}
	//竖
	printf("000000000000000000\n");
	for (int i = 0; i < n; i++){
		int sum = 0;
		for (int j = 0; j < n; j++){
			sum = sum + a[j][i];
		}
		printf("sum=%d\n", sum);
	}
	//斜
	printf("000000000000000000\n");
	int sum = 0;
	for (int i = 0; i < n; i++){
			sum = sum + a[i][i];
	}
		printf("sum=%d\n", sum);

	sum = 0;
	for (int i = 0; i < n; i++){
		sum = sum + a[i][3-i];
	}
		printf("sum=%d\n", sum);
	



	return 0;
}

8./*找出一个二维数组的鞍点*/
#include<stdio.h>

int main(){
	int a[6][6];

	for (int i = 0; i < 6; i++){
		for (int j = 0; j < 6; j++){
			a[i][j] = i * 6 + j + 1;
		}
	}

	for (int i = 0; i < 6; i++){
		for (int j = 0; j < 6; j++){
			printf("%5d",a[i][j]);
		}
		printf("\n");
	}
	//寻找
	for (int i = 0; i < 6; i++){
		int x = 0,s=1;
		int n = -1, m = -1;
		//寻找行最大
		for (int j = 0; j < 6; j++){
			if (a[i][j] > x){
				x = a[i][j];
				n = i, m = j;
			}
		}
		//验证列最小
		for (int j = 0; j < 6; j++){
			if (a[n][m] >a[j][m]){
				s = 0;
				break;
			}
			
		}
		if (s)
			printf("鞍点a[%d][%d]=%d\n", n, m, a[n][m]);
	}
	


	return 0;
}

9./*有15个数按大小顺序存在一个数组中,输入一个数,用懵
折半查找出其位置,并输出其位置*/
#include<stdio.h>

int main(){
	int a[20] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
	int b = 6,n=0,m=15,l=0;

	for (n = 0,m=15; !((a[l] == b)||(n-m==0));l = n + (m - n) / 2){
		if (a[l] < b)
			n = l;
		else
			m = l;
	}
	if (a[l] == b)
		printf("%d\n", l);
	
	return 0;
}

12./*将一段字母加密,并输出原文及密码*/
#include<stdio.h>

int main(){
	char a[10] = { 'a', 'b', 'c', 'x', 'y', 'z' };
	char b[10] = { 0 };

	for (int i = 0; a[i] != 0; i++){
		if (a[i] <= 122 && a[i]>=97)
		b[i] = 122-a[i]+97;
	}

	printf("a:%s\nb:%s\n", a, b);
	
	return 0;
}

13./*把两个字符串连接起来*/
#include<stdio.h>

int main(){
	char a[10] = "faeawfwae";
	char b[10]="hyrcy";
	char v[30] = { 0 };
	int i;
	for ( i= 0; a[i]!=0; i++){
		v[i] = a[i];
	}
	for (int j = 0; b[j] != 0; j++,i++){
		v[i] = b[j];
	}
	printf("v:%s", v);
	
	return 0;
}

14./*计较两个字符串s1、s2*/
#include<stdio.h>

int main(){
	char s1[10]="0";
	char s2[10]="0";

	gets(s1);
	gets(s2);

	
	int i = 0;
	for (; s1[i] !=0&& s2[i]!=0;){
		i++;
		if (s1[i] != s2[i]){
			printf("%d\n", s1[i] - s2[i]);
			break;
		}
	}
	if (s1[i] == 0 && s2[i] == 0)
		printf("0\n");
	else if (s1[i] != 0 && s2[i] == 0)
		printf("%d\n", s1[i]);
	else if (s1[i] == 0 && s2[i] != 0)
		printf("%d\n", s2[i]);

	return 0;
}

15./*复制一个字符串*/
#include<stdio.h>

int main(){
	char s1[10] = "568794";
	char s2[10];
	
	int i = 0;
	for (; s1[i] != 0; i++){
		s2[i] = s1[i];
	}
	s2[i] = s1[i];

	printf("s1:%s\ns2:%s\n", s1,s2);

	return 0;
}

第七章

4./*3*3的二维整形数组转置*/
#include<stdio.h>

void turn(int a[3][3]){
	int b[3][3];
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			b[j][i] = a[i][j];
		}
	}
	for (int i = 0; i < 3; i++){
		for (int j = 0; j < 3; j++){
			a[i][j] =b[i][j];
		}
	}
}

int main(){
	int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

	turn(a);

	return 0;
}

5./*反序输出输入的字符串*/
#include<stdio.h>

void turn(char s1[10]){
	int i = 0;
	char t=0;
	for (; s1[i] != 0; i++);
	for (int j = 0; i!=j&&(i-1)!=j; j++, i--){
		t = s1[i-1];
		s1[i-1] = s1[j];
		s1[j] = t;
	}
		
}

int main(){
	char s1[10] = { 0 };
	gets(s1);
	printf("%s\n", s1);
	turn(s1);

	printf("逆序:%s\n", s1);

	return 0;
}

7./*复制一个字符串的首字母到另一个字符串*/
#include<stdio.h>

void t(char s1[], char s2[]){
	s1[0] = s2[0];
}

int main(){
	char a[5] = { 1, 1, 1, 1, 1 };
	char b[5] = { 2, 2, 2, 2, 2 };

	t(a, b);

	return 0;
}

8./*复制一个字符串的首字母到另一个字符串*/
#include<stdio.h>

void shuru(){
	char s[5] = { 0 };

	gets(s);

	printf("%c %c %c %c\n", s[0], s[1], s[2], s[3]);
}

int main(){
	shuru();

	return 0;
}

9./*输入一个字符串,输出其中最长的*/
#include<stdio.h>

void find(char* a){
	char* b=a;
	int i,j,l=0;

	for (i = 0; a[i] != 0; i++){
		for (j=0;a[i+j]>=97&&a[i+j]<=122;j++){

		}
			if (j > 0){
				l = j;
				b = a[i];
			}
			i = i + j;
		
	}
	i = i - j - 1;
	while (a[i] >= 97 && a[i] <= 122){
		putchar(a[i]);
		i++;
	}
}

int main(){
	char text[128] = { 0 };
	gets(text);

	find(text);

	return 0;
}

13./*求n阶勒让德多项式的值*/
#include<stdio.h>
	int x = 6;
	

double p(double i){
	if (i == 0){
		return 1;
	}
	else if (i == 1){
		return x;
	}
	else
	return (2 * i - 1)*x - p(i - 1) - (i - 1)*p(i - 2) / 2;
}

int main(){
	int i = 3;//i为第几n

	printf("p[%d]=%f\n", i, p(i));

	return 0;
}

14.。。。未完成

16./*16进制转换成10进制*/
#include<stdio.h>

void sl(int a){
	printf("%X\n",a);
}

int main(){
	int a = 0;

	scanf_s("%d",&a);

	sl(a);

	return 0;
}

17./*输入一个数字,将其转换成字符串输出*/
#include<stdio.h>

void sl(int c){
	char a[10];
	char w;

	for (int i = 0; i < 9  &&c != 0; i++,a[i]=c){
		
		 w= c % 10;
		 a[i] = w+48;
		c = c / 10;
	}

	printf("%s\n", a);
}

int main(){
	int a = 654; 
	scanf("%d", &a);
	sl(a);

	return 0;
}

18./*给出年月日,计算这是第几天*/
#include<stdio.h>

void sl(int a[3]){
	int b,c;

	if (a[0] %4== 0 && (a[1] % 100) != 0){
		c = 29;
	}
	if (a[0] % 400==0)
		c = 29;
	else
		c = 28;

	if (a[1] == 1)
		b = a[2];
	else if (a[1] == 2)
		b = 31 + a[2];
	else if (a[1] == 3)
		b = 31 +c+ a[2];
	else if (a[1] == 4)
		b = 31 +c+31 +a[2];
	else if (a[1] == 5)
		b = 31 + c + 31 + 30+a[2];
	else if (a[1] == 6)
		b = 31 + c + 31 + 30 +31+a[2];
	else if (a[1] == 7)
		b = 31 + c + 31 + 30 + 31 + 30+a[2];
	else if (a[1] == 8)
		b = 31 + c + 31 + 30 + 31 + 30 +31+ a[2];
	else if (a[1] == 9)
		b = 31 + c + 31 + 30 + 31 + 30 + 31 + 31+a[2];
	else if (a[1] == 10)
		b = 31 + c + 31 + 30 + 31 + 30 + 31 + 31 +30+ a[2];
	else if (a[1] == 11)
		b = 31 + c + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31+a[2];
	else if (a[1] == 12)
		b = 31 + c + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30+a[2];





	printf("这是这年的第%d天\n",b);
}

int main(){
	int a[3];

	printf("请输入年:");
	scanf_s("%d",&a[0]);
	printf("请输入月:");
	scanf_s("%d", &a[1]);
	printf("请输入日:");
	scanf_s("%d", &a[2]);

	sl(a);

	return 0;
}


第八章

1./*输入3个整数,按从小到大的顺序输出*/
#include<stdio.h>

void swap(int* p1,int* p2){
	int n;
	n = *p2;
	*p2 = *p1;
	*p1 = n; 
}

int main(){
	int* p1,* p2,* p3;
	int n1, n2, n3;
	
		printf("请输入n%d:",1);
		scanf_s("%d", &n1);
		printf("请输入n%d:",2);
		scanf_s("%d", &n2);
		printf("请输入n%d:",3);
		scanf_s("%d", &n3);

	p1 = &n1;
	p2 = &n2;
	p3 = &n3;

	//比较
	if (p1 > p2)
		swap(p1, p2);
	if (p1 > p3)
		swap(p1, p3);
	if (p2 > p3)
		swap(p2, p3);

	printf("p1:%d\np2:%d\np3:%d\n", *p1, *p2, *p3);

	return 0;
}

2./*输入三个字符串,按从小到大的顺序输出*/
#include<stdio.h>

void swap (char a[], char b[]){
	char c[10];

	strcpy(c, a);
	strcpy(a, b);
	strcpy(b, c);
}

int main(){
	char str1[10], str2[10], str3[10];

	printf("请输入字符串:");
	gets(str1);
	printf("请输入字符串:");
	gets(str2);
	printf("请输入字符串:");
	gets(str3);

	//比较
	if (strcmp(str1,str2)>0)
		swap(str1, str2);
	if (strcmp(str1, str3)>0)
		swap(str1, str3);
	if (strcmp(str2, str3)>0)
		swap(str2, str3);
	printf("%s\n%s\n%s\n", str1, str2, str3);

	return 0;
}

3./*输入十个数,最小的和第
一个换,最的和最后一个换*/

#include<stdio.h>

int main(){
	int a[10];
	int* p1,* p2;
	int s;
	/*
	a[0] = 2;
	a[1] = 7;
	a[2] = 9;
	a[3] = 2;
	a[4] = 12;
	a[5] = 6;
	a[6] = 7;
	a[7] = 99;
	a[8] = 1;
	a[9] = 5;
	*/

	//输入
	for (int i = 0; i < 10; i++){
		printf("a[%d]:", i+1);
		scanf_s("%d", &a[i]);
	}
	

	//找到最小的
	p1 = a;
	for (int i = 0; i < 10; i++){
		if (*p1 > a[i])
			p1 = &a[i];
	}
	s = *p1;
	*p1 = a[0];
	a[0] = s;

	//找到最大的
	p2 = a;
	for (int i = 0; i < 10; i++){
		if (*p2 < a[i])
			p2 = &a[i];
	}
	s = *p2;
	*p2 = a[9];
	a[9] = s;


	for (int i = 0; i < 10;i++ ){
		printf("%d\n", a[i]);
	}

	getchar();
	return 0;
}

4./*有n个整数,使数向后移m个位置,
在最后m个数放在前m个位置*/

#include<stdio.h>

int main() {
	int n = 10, m = 3;
	int a[100], b[100];
	int* p1 = a, *p2 = b;

	//输入数字
	for (int i = 0; i < n; i++) {
		a[i] = i + 1;
	}

	//a移入b
	for (int i = 0; i < n; i++) {
		b[i] = a[i];
	}

	//后移1
	for (int i = m; i < n; i++,p2++) {
		a[i] = *p2;
	}

	//后移2
	for (int i = 0; i < m; i++, p2++) {
		a[i] = *p2;
	}

	//输出
	for (int i = 0; i < n; i++) {
		printf("%d\n", *(p1 + i));
	}

	return 0;
}


5./*n个人围成一个圈,报数三的出列
输出剩下的*/

#include<stdio.h>

int main() {
	int a[100];
	int n = 7, m = 0, *p = a;

	for (int i = 0; i < n; i++) {
		a[i] = i + 1;
	}

	for (; m != n;m++,printf("m=%d,*p=%d\n",m,*(p-1)),*(p-1)=0) {
		//printf("m=%d\n", m );
		for (int i = 0; i < 3; ) {
			if (p == a + n)
				p = a;
			else if (*p == 0)
				p++;
			else
				p++, i++;

		}

	}



	return 0;
}

6./*输入一个字符串,输出其长度*/

#include<stdio.h>
#include<stdlib.h>

int main() {
	char a[100],* p;
	p = a;

	gets_s(a);

	for (int i = 0; *p != 0; p++, i++, printf("i=%d\n", i));


	return 0;
}

7./*输入一个字符串,输出其长度*/

#include<stdio.h>
#include<stdlib.h>

int main() {
	char a[100],* p;
	p = a;

	gets_s(a);

	for (int i = 0; *p != 0; p++, i++, printf("i=%d", i));


	return 0;
}

8./*输入一段文字,输出其大写字母、小写字母、
空格、数字、及其他字符各是多少*/

#include<stdio.h>

int main() {
	char a[100];
	char* p = a;
	int n = 0, m = 0, k = 0, s = 0, q = 0;

	gets_s(a);

	//printf("*p=%d,'*p'=%d\n", *p, '*p');

	while (*p != 0) {
		if (*p >= 65 && *p <= 90)
			n++;
		else if (*p >= 97 && *p <= 122)
			m++;
		else if (*p == 32 )
			k++;
		else if (*p >= 48 && *p <= 57)
			s++;
		else  
			q++;
		p++;
	}

	printf("小写字母:%d\n大写字母:%d\n空格:%d\n数字:%d\n其他字符:%d\n", n, m, k, s, q);
	
	return 0;
}

9./*写一个函数将一个3*3的矩阵转置*/

#include<stdio.h>

void gg(int* p) {
	int b[3][3];
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			b[i][j] = *(p+i+j*3);
		}
	}
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			*(p+i*3+j) = b[i][j];
		}
	}
}

int main() {
	int a[3][3];

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			a[i][j] = i * 3 +1+ j;
		}
	}

	gg(&a[0][0]);

	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 3; j++) {
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}

	return 0;
}

10/*在一个5*5的矩阵中调整--
1.最大在中间;2.最小在左上;3.次小在右上;4.再次小在左下;5.再再次小在右下*/
#include<stdio.h>

void change(int* p) {
	int* t = p, l = 0;
	int* t1 = p, *t2 = p, *t3 = p, *t4 = p;
	//1.
	for (int i = 0; i < 25; i++, p++) {
		if (*t < *p)t = p;
	}
	p = p - 25;

	printf("*t=%d\n", *t);

	//2.
	for (int i = 0; i < 25; i++, p++) {
		if (*t1 > *p)t1 = p;
	}
	p = p - 25;

	
	printf("*t1=%d\n", *t1);

	//3.
	for (int i = 0; i < 25; i++, p++) {
		if (t2 == t1) {
			t2++;
			continue;
		}
		if (*t2 > *p)
			*t2 = *p;
	}
	p = p - 25;

	

	printf("*t2=%d\n", *t2);

	//4.
	for (int i = 0; i < 25; i++, p++) {
		if (t3 == t1) {
			t3++;
			continue;
		}

		if (t3 == t2) {
			t3++;
			continue;
		}
		if (*t3 > *p)
			*t3 = *p;
	}

	p = p - 25;

	

	printf("*t3=%d\n", *t3);


	//5.
	for (int i = 0; i < 25; i++, p++) {
		if (t4 == t1) {
			t4++;
			continue;
		}

		if (t4 == t2) {
			t4++;
			continue;
		}
		if (t4 == t3) {
			t4++;
			continue;
		}

		if (*t4 > *p)
			*t4 = *p;
	}

	p = p - 25;

	printf("*t4=%d\n", *t4);



	//交换
	l = *t;
	*t = *(p + 12);
	*(p + 12) = l;

	l = *t1;
	*t1 = *(p);
	*(p) = l;

	l = *t2;
	*t2 = *(p + 4);
	*(p + 4) = l;

	l = *t3;
	*t3 = *(p + 20);
	*(p + 20) = l;

	l = *t4;
	*t4 = *(p + 24);
	*(p + 24) = l;
	
}

int main() {
	int a[5][5];

	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			a[i][j] = i * 5 + j;
		}
	}
	//输出
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}
	//运算
	change(&a[0][0]);

	//输出
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			printf("%d ", a[i][j]);
		}
		printf("\n");
	}
	return 0;
}

11./*在主函数输入10个等长的字符串,用子函数将其排序,并在主函数输出*/
#include<stdio.h>

void swap(char* p1,char* p2) {
	char t;
	for(int i=0;i<2;i++,p1++,p2++){
		if (*p1 > *p2){
			p1 = p1 - i;
			p2 = p2 - i;
			for (int i = 0; i < 2; i++, p1++, p2++) {
				t = *p1;
				*p1 = *p2;
				*p2 = t;
			}
			break;
		}
	}
}

void s(char* p) {
	for (int i = 0; i < 10; i++) {
		for (int j = 0; j < 9-i; j++) {
			swap((p + j*3), (p + j*3 + 3));
		}
	}
}

int main() {
	char a[10][3] = {"op","mn","qr","st" ,"ab","cd","ef","gh","ij","kl" };
	s(&a[0][0]);

	return 0;
}

12./*在主函数输入10个不等长的字符串,用子函数将其排序,并在主函数输出*/
#include<stdio.h>
#include<string.h>

void swap(char* p1, char* p2) {
	char a[10];
	if (strcmp(p1, p2) < 0) {
		strcpy(a, p1);
		strcpy(p1, p2);
		strcpy(p2, a);
	}
}

void s(char* p) {
	for (int i = 0; i < 10; i++) {
		for (int j = 0; j < 9 - i; j++) {
			swap((p + j * 10), (p + j * 10 + 10));
		}
	}
}


int main() {
	char a[10][10] = { "b","a","j","d" ,"aob","aobh","z","y","x","w" };
	//swap(&a[0][0], &a[1][0]);
	s(&a[0][0]);

	return 0;
}

14./*输入几个数按逆序输出*/
#include<stdio.h>

int main() {
	int n[9] = { 1,23,45,67,89,2 };
	int m = 6;

	int* p = n;
	int t;

	for (int i = 0; i < m/2; i++) {
		t = *(p+i);
		*(p+i)= *(p + m-1 - i) ;
		*(p + m-1 - i) = t;
	}

	//输出
	for (int i = 0; i < m ; i++) {
		printf("%d\n", n[i]);
	}

	return 0;
}

15./*四个学生考了五门课--
						求第一门课的平均分
						找出两门可不及格的学生并输出其学号及平均分
						找出平均分在90分以上的学生*/
#include<stdio.h>

//求第一门课的平均分
void gya(char* p) {
	printf("平均分:%d\n", (*p+*(p+1)+ *(p+2)+*(p+3))/4);
}

//找出两门可不及格的学生并输出其学号及平均分
int find(char* p) {
	int i = 0;
	if (*(p) < 60)i++;
	if (*(p+4) < 60)i++;
	if (*(p+8) < 60)i++;
	if (*(p+12) < 60)i++;
	if (*(p+16) < 60)i++;

	return i;
}

void found(char* p) {
	int k = 0;
	for (int i = 0; i < 4; i++) {
		k = find(p + i);
		if (k >= 2)
			printf("%d\n\t平均分:%d\n",i,(*(p+i)+ *(p + i+4)+ *(p + i+8)+ *(p + i+12)+ *(p + i+16))/5);
	}
}

//找出平均分在90分以上的学生
void bob(char* p) {
	int k = 0;
	for (int i = 0; i < 4; i++) {
		k = ((*(p + i) + *(p + i + 4) + *(p + i + 8) + *(p + i + 12) + *(p + i + 16)) / 5);
		if(k>=90)
		printf("%d\n\t平均分:%d\n", i, (*(p + i) + *(p + i + 4) + *(p + i + 8) + *(p + i + 12) + *(p + i + 16)) / 5);

	}
}


int main() {
	char a[5][4] = { 0 };
	for(int i=0;i<20;i++){
		a[i/4][i%4] = 89;
	}

	a[0][0] = 100;
	a[1][3] = 0;
	a[1][2] = 9;
	a[2][2] = 9;

	gya(&a[0][0]);

	found(&a[0][0]);

	bob(&a[0][0]);

	return 0;
}

16./*有一个由数字和非数字组成的字符串,将其中的数字记录到数组中并输出*/
#include<stdio.h>
#include<math.h>

//记录一个数字
char* record(char* p1,int* p2) {
	int i = 0,k=0;
	int a[128] = { 0 };

	for (; *p1 <= 57 && *p1 >= 48; i++,p1++) {
		a[i] = *p1-48;
	}
	//i = i - 1;
	for (int j=0; j<i; j++) {
		k = k+a[j] *pow(10,i-j-1);
	}
	*p2 = k;

	return p1 ;
}

int main() {
	char a[128],*p;
	int c[128] = { 0 };
	p = a;

	gets_s(a);
	
	for (int i=0; *p != 0;) {
		if (*p <= 57 && *p >= 48){
			p = record(p, &c[i]); 
			i++;
		}
		else
			p++;
	}

	//输出
	for (int i = 0; c[i]!=0; i++) {
		printf("c[%d]:%d\n", i, c[i]);
	}
	
	return 0;
}

17./*写一个strcmp*/
#include<stdio.h>

int boy(char* p1, char* p2) {
	for (int i = 0;*p1!=0&&*p2!=0; i++) {
		if (*p1 == *p2){
			p1++, p2++;
			continue;
		}
		else if (*p1 > *p2)
			return	1;
		else
			return -1;
	}

	return 0;
}

int main() {
	char a[128]="a", b[128]="a";

	printf("%d\n", boy(a,b));

	return 0;
}

18./*输入月份,输出名字*/
#include<stdio.h>

int main() {
	int i=0;
	char a[12][32] = { 0 };

	a[0][0] = 'a';
	a[0][1] = 'a';

	a[1][0] = 'b';
	a[1][1] = 'b';

	a[2][0] = 'c';
	a[2][1] = 'c';

	a[3][0] = 'd';
	a[3][1] = 'd';

	a[4][0] = 'e';
	a[4][1] = 'e';

	a[5][0] = 'f';
	a[5][1] = 'f';

	a[6][0] = 'g';
	a[6][1] = 'g';

	a[7][0] = 'h';
	a[7][1] = 'h';

	a[8][0] = 'j';
	a[8][1] = 'j';

	a[9][0] = 'k';
	a[9][1] = 'k';

	a[10][0] = 'l';
	a[10][1] = 'l';

	a[11][0] = 'm';
	a[11][1] = 'm';

	printf("请输入月份:");
	scanf_s("%d", &i);
	i = i - 1;

	printf("%s\n", &a[i][0]);

	return 0;
}

20./*用指针的方法对五个字符串排序并输出*/
#include<stdio.h>
#include<string.h>

int main() {
	char* p[5],* w;
	char a[32] = "dfasa";
	char b[32] = "da";
	char c[32] = "d";
	char d[32] = "sa";
	char e[32] = "a";
	p[0] = a,p[1] = b, p[2] = c, p[3] = d, p[4] = e ;

/*	for (int i = 0; i < 5; i++) {
		for(int j=0;j<5-i;j++){
			swap(p[j], p[j + 1]);
		}
	}
	*/
	for(int j = 0;j<5;j++){
		for(int i=0;i<4-j;i++){
			if (strcmp(p[i], p[i+1]) > 0) {
				w = p[i];
				p[i] = p[i+1];
				p[i+1] = w;
			}
		}
}

	for (int i = 0; i < 5; i++) {
		printf("%s\n", p[i]);
	}

	return 0;
}

21./*将n个整数输入并输出*/
#include<stdio.h>

int main() {
	int n = 128;
	int a[128] = { 0 };
	int* p = a;

	/*for (int i = 0; i < n; i++) {
		scanf_s("%d", &a[i]);

		if (a[i] == 'q') {
			break;
		}
	}

	for (int i = 0; i < n; i++) {
		printf("%d\n", a[i]);

		if (a[i] == 'q' || a[i] == 0) {
			break;
		}
	}*/

	for (int i = 0; i < n; i++) {
		a[i] = i;
	}

	//排序
	for(int j=0;j<128;j++){
		for(int i=0;i<127-j;i++){
			if (*(p+i) < *(p+i + 1)) {
				int m = 0;
				m = *(p+i);
				*(p+i) = *(p+i + 1);
				*(p+i + 1) = m;
			}
		}
	}


	for (int i = 0; i < n; i++) {
		printf("%d\n", a[i]);
	}

	return 0;
}

第九章

1./*定义一个结构体,其中包含年,月,日,输出其实该年的第几天*/
#include<stdio.h>
struct a {
	int year;
	int mouth;
	int day;
};

int main() {
	a b /*= { 2019,7,31 }*/;
	int number = 0,n=0;

	printf("请输入年月日:年,月,日");
	scanf_s("%d %d %d", &b.year, &b.mouth, &b.day);

	if (b.year % 400 == 0) n = 1;
	else if (b.year % 100 == 0) n = 0;
	else if (b.year % 4 == 0) n = 1;
	else n = 0;

	if (b.mouth == 1) number = number + b.day;
	else if (b.mouth == 2) number = number + b.day + 31 ;
	else if (b.mouth == 3) number = number + b.day + 31 + 28 + n;
	else if (b.mouth == 4) number = number + b.day + 31 + 28 + n + 31 ;
	else if (b.mouth == 5) number = number + b.day + 31 + 28 + n + 31 + 30 ;
	else if (b.mouth == 6) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 ;
	else if (b.mouth == 7) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 ;
	else if (b.mouth == 8) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 + 31 ;
	else if (b.mouth == 9) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 + 31 + 31 ;
	else if (b.mouth == 10) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 + 31 + 31 + 30 ;
	else if (b.mouth == 11) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 ;
	else if (b.mouth == 12) number = number + b.day + 31 + 28 + n + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 ;
	
	//输出
	printf("这是该年的%d天\n",number);

	return 0;
}

3./*有五名学生,每个学生有三个数据,输出他们*/
#include<stdio.h>
struct a {
	char num[6];
	char name[8];
	int score[4];
};

void print(a c[]) {
	for (int i = 0; i < 5; i++) {
		printf("%s,%s,%d\n", c[i].num,c[i].name,c[i].score );
	}
}

int main() {
	a b[5];
	b[0] = { "hhh","jjj",77 };
	b[1] = { "hhh","jjj",77 };
	b[2] = { "hhh","jjj",77 };
	b[3] = { "hhh","jjj",77 };
	b[4] = { "hhh","jjj",77 };
	print(b);

	return 0;
}

4./*有五名学生,每个学生有三个数据,输出他们*/
#include<stdio.h>
#include<string.h>

struct student{
	char a[8];
	int b;
	int c;
};

void print(student* a) {
	for (int i = 0; i<5; i++) {
		printf("%s\n", a[i].a);
	}

	for (int i = 0; i < 5; i++) {
		printf("%d\n", a[i].b);
	}

	for (int i = 0; i < 5; i++) {
		printf("%d\n", a[i].c);
	}
}	

void input(student* a) {
	for (int i = 0; i<5; i++) {
		printf("请输入a[%d]:",i+1);
		gets_s(a[i].a);
	}

	for (int i = 0; i<5; i++) {
		printf("请输入b%d:", i+1);
		//fflush(stdin);					//这里搞不太懂,输入缓冲区在哪里
		scanf_s("%d", &a[i].b);
	}
	
	for (int i = 0; i < 5; i++) {
		printf("c%d:", i+1);
		scanf_s("%d", &a[i].c);
	}
	
}

int main() {
	student hao[5];
	//gets_s(hao[1].a);
	//scanf_s("%d", &hao[1].b);
	
	input(hao);
	print(hao);

	return 0;
}

5./*有十名学生,姓名、学号、三课成绩,
								输出三个平均分和最高分学生的信息*/
#include<stdio.h>
#include<string.h>

struct student{
	char a[8];
	char b[16];
	int c[3];
	int ave;
};

void input(student* a) {
	for (int i = 0; i<10; i++) {
		if(i!=0)getchar();

		printf("请输入姓名[%d]:",i+1);
		gets_s(a[i].a);
		printf("请输入学号%d:", i + 1);
		gets_s(a[i].b);
		for (int j = 0; j < 3; j++) {
			printf("%s,c%d:", &a[i].a,j + 1);
			scanf_s("%d", &a[i].c[j]);
		}

	}
}

int main() {
	student hao[10];
	input(hao);

	//计算输出
	for (int i = 0,o=0; i<3; i++,o = 0) {
		for(int j=0;j<10;j++){
			o = o + hao[j].c[i];
		}
		//scanf_s("%d", hao[j].v);
		printf("%d\n", o/10);
	}

	for (int i = 0, o = 0; i<10; i++, o = 0) {
		for (int j = 0; j<3; j++) {
			o = o + hao[i].c[j];
		}
		hao[i].ave = o / 3;
		printf("%d\n", o / 3);
	}

	//找到最强的同学
	student* p1,*p2;
	p1 = hao;
	p2 = hao;
	p2++;

	for (int i = 0; i < 10; i++,p2++) {
		if (p1->ave < p2->ave)p1 = p2;
	}

	printf("%s,%s,%d,%d,%d,%d", p1->a, p1->b, p1->c[0], p1->c[1], p1->c[2], p1->ave);

return 0;
}

6./*十三个人站成一圈,报三出列,剩谁
							(用链表实现)*/
#include<stdio.h>
#infine N 5		//完全不懂为什么不能用宏定义


struct student {
	int a;
	student* p;
};

int main() {
	student hao[13];
	//定义
	for (int i = 0; i < 13; i++) {
		hao[i].a = i+1;
		hao[i].p = &hao[i + 1];
		if (i == 12) {
			hao[i].a = i + 1;
			hao[i].p = &hao[0];
		}
	}

	//出列
	student *p1;
	p1 = &hao[0];
	for (; p1->p != p1; printf("%d\n", p1->a),p1 = p1->p->p) {			//这里出现了问题,完全不懂是为什么
		p1->p->p = p1->p->p->p;
	}

	printf("%d\n", p1->a);


return 0;
}

9./*写一个动态链表实现
					建立、输出、删除、插入*/
#include<stdio.h>
#include<stdlib.h>


struct student {
	int a;
	student* p;
};
//建立
student* jianli() {
	student* a;
	a = (student*)malloc(sizeof(student));
	a->a = 0;
	a->p = (student*)malloc(sizeof(student));
	a->p->a = 1;
	a->p->p = 0;
	a->p->p = (student*)malloc(sizeof(student));
	a->p->p->a = 2;
	a->p->p->p = 0;

	return a;
}

//输出
void shuchu(student* a) {
	for (; a->p != 0; a = a->p) {
		printf("%d\n", a->a);
	}
	printf("%d\n", a->a);
}

//删除
void shachu(student* a, int i) {
	student* a1;
	for (; a->p != 0;a=a->p) {
		if (a->p->a == i) {
			a1= a->p->p;
			free(a->p);
			a->p = a1;
			break;
		}
	}

}

//插入
void input(student* a, int i) {
	student* m;
	for (;a->p!=0; a=a->p) {
		if(a->p->a > i){
			continue;
		}
		else{
			m = (student*)malloc(sizeof(student));
			m->a = i;
			m->p=a->p;
			a->p = m;
			break;
		}
	}
}


int main() {
	student* a;
	a = jianli();
	input(a, 6);
	input(a, 7);
	input(a, 8);
	input(a, 9);
	input(a, 7);
	input(a, 11);
	input(a, 12);
	
	
	shachu(a, 7);
	shachu(a,7);
	shuchu(a);

return 0;
}

10./*有a,b两个链表,学号、成绩将其合并,并按升序排列*/
#include<stdio.h>
#include<stdlib.h>


struct student {
	int a;
	int a1;
	char b[16];
	student* p;
};
//建立
student* jianli() {
	student* a;
	a = (student*)malloc(sizeof(student));
	a->a = 0;
	a->p = (student*)malloc(sizeof(student));
	a->p->a = 1;
	a->p->p = 0;
	a->p->p = (student*)malloc(sizeof(student));
	a->p->p->a = 2;
	a->p->p->p = 0;

	return a;
}

//输出
void shuchu(student* a) {
	for (; a->p != 0; a = a->p) {
		printf("%d\n", a->a);
	}
	printf("%d\n", a->a);
}

//删除
void shanchu(student* a, int i) {
	student* a1;
	for (; a->p != 0;a=a->p) {
		if (a->p->a == i) {
			a1= a->p->p;
			free(a->p);
			a->p = a1;
			break;
		}
	}

}

//插入
void input(student* a, int i) {
	student* m;
	for (;a->p!=0; a=a->p) {
		if(a->p->a > i){
			continue;
		}
		else{
			m = (student*)malloc(sizeof(student));
			m->a = i;
			m->p=a->p;
			a->p = m;
			break;
		}
	}
}

//a-b
student* qutong(student* a,student* b) {
	return a;
}

//a+b
student* hebing(student* a, student* b) {
	student* c;
	c = (student*)malloc(sizeof(student));
	c->a = 0;
	for (;b != 0;b=b->p) {
		input(a, b->a);
	}

	c = a;

	return c;
}



int main() {
	student* a;
	student* b;
	student* ab;
	a = jianli();
	shanchu(a, 1);
	b = jianli();
	shanchu(b, 1);
	
	printf("a:\n");
	shuchu(a);
	printf("b:\n");
	shuchu(b);

	input(a, 1);
	input(a, 2);
	input(a, 4);
	input(a, 5);
	input(a, 6);
	input(a, 7);

	input(b, 4);
	input(b, 66);
	input(b, 67);
	input(b, 78);

	printf("a:\n");
	shuchu(a);
	printf("b:\n");
	shuchu(b);

	ab = hebing(a, b);

	printf("ab\n");
	shuchu(ab);


return 0;
}

11./*有a,b两个链表,学号、成绩a-b*/
#include<stdio.h>
#include<stdlib.h>


struct student {
	int a;
	int a1;
	char b[16];
	student* p;
};
//建立
student* jianli() {
	student* a;
	a = (student*)malloc(sizeof(student));
	a->a = 0;
	a->p = (student*)malloc(sizeof(student));
	a->p->a = 1;
	a->p->p = 0;
	a->p->p = (student*)malloc(sizeof(student));
	a->p->p->a = 2;
	a->p->p->p = 0;

	return a;
}

//输出
void shuchu(student* a) {
	for (; a->p != 0; a = a->p) {
		printf("%d\n", a->a);
	}
	printf("%d\n", a->a);
}

//删除
void shanchu(student* a, int i) {
	student* a1;
	for (; a->p != 0;a=a->p) {
		if (a->p->a == i) {
			a1= a->p->p;
			free(a->p);
			a->p = a1;
			break;
		}
	}

}

//插入
void input(student* a, int i) {
	student* m;
	for (;a->p!=0; a=a->p) {
		if(a->p->a > i){
			continue;
		}
		else{
			m = (student*)malloc(sizeof(student));
			m->a = i;
			m->p=a->p;
			a->p = m;
			break;
		}
	}
}

//a-b
student* qutong(student* a,student* b) {
	student* c,* a1,* b1;
	a1 = a;
	b1 = b;

	c = (student*)malloc(sizeof(student));
	c->a = 0;
	//shanchu(a, b->p->a);
	for (; b != 0; b = b->p) {
		for (a1=a; a1 != 0;a1=a1->p) {
			if (b->a == a1->a){
				//printf("%d\n",b->a);
				shanchu(a, b->a);
				break;
			}
		}
	}

	c = a;

	return c;
}

//a+b
student* hebing(student* a, student* b) {
	student* c;
	c = (student*)malloc(sizeof(student));
	c->a = 0;
	for (;b != 0;b=b->p) {
		input(a, b->a);
	}

	c = a;

	return c;
}

int main() {
	student* a;
	student* b;
	student* ab;
	a = jianli();
	shanchu(a, 1);
	b = jianli();
	shanchu(b, 1);
	
	printf("a:\n");
	shuchu(a);
	printf("b:\n");
	shuchu(b);

	input(a, 1);
	input(a, 2);
	input(a, 4);
	input(a, 5);
	input(a, 6);
	input(a, 7);
	input(a, 78);

	input(b, 4);
	input(b, 66);
	input(b, 67);
	input(b, 78);

	printf("a:\n");
	shuchu(a);
	printf("b:\n");
	shuchu(b);

	

	printf("ab\n");
	ab = qutong(a, b);
	shuchu(ab);


return 0;
}

第十章


3./*输入一个字符串,小写字母变大写字母
									输出至test文件中,以!结束*/
#include<stdio.h>
#include<stdlib.h>

									//小写字母变大写字母
void change(char* str) {
	for (int i = 0; i < 128 && str[i] != 0; i++) {
		if (str[i] <= 122 && str[i] >= 97) {
			str[i] = str[i] - 32;
		}
	}
}

int main() {
	char str[128];

	//输入
	gets_s(str);

	//
	change(str);
	printf("%s\n", str);

	FILE* fp;
	//1
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text.txt", "w");
	//2
	if(fp == NULL){
		printf("文件打开失败\n");
		return -1;
	}
	//3
	fprintf(fp, "%s!", str);
	//4
	fclose(fp);

return 0;
}

4./*有a、b两个文件各存一行文字
							将其合并排序然后存入c中*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

//交换两个元素
void change(char* a, char* b) {
	char c;
	c = *a;
	*a = *b;
	*b = c;
}

//合并
void hebing(char* a, char*b,char* c) {
	//叠加
	char* d;
	d = a;
	int i = 0;
	for (; a[i]!=0; i++) {
		c[i] = a[i];
	}
	for(int j=0;b[j]!=0;j++,i++){
		c[i] = b[j];
	}
	//排序

	for (int k = i; k !=0; k--) {
		for (int o = 0; o < k-1; o++) {
			if(c[o]> c[o + 1])change(&c[o], &c[o + 1]);
		}
	}
	
}

int main() {
	char str1[128] = { 0 };
	char str2[128] = { 0 };
	char str3[256] = { 0 };

	FILE* fp1;
	FILE* fp2;

	//1
	fp1 = fopen("C:\\Users\\didi\\Desktop\\function\\text\\a.txt", "r");
	fp2 = fopen("C:\\Users\\didi\\Desktop\\function\\text\\b.txt", "r");
	
	//2
	if (fp1 == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	if (fp2 == NULL) {
		printf("文件打开失败\n");
		return -2;
	}
	
	//3
	fgets(str1, 100, fp1);
	fgets(str2, 100, fp2);
	
	//4
	fclose(fp1);
	fclose(fp2);

	hebing(str1, str2, str3);

	printf("%s\n", str1);
	printf("%s\n", str3);

return 0;
}

5./*有5名同学三门成绩,计算平均分,将数据输出至磁盘文件"study"中*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student {
	char a[16];
	int b[3];
	int ave;
};

int main() {
	student boy[5];

	for (int i = 0; i < 5; i++) {
		strcpy(boy[i].a, "u");
		boy[i].b[0] = i*i;
		boy[i].b[1] = i+i;
		boy[i].b[2] = i+7;
		boy[i].ave = (boy[i].b[0] + boy[i].b[1] + boy[i].b[2]) / 3;
	}

	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\study.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for (int i = 0; i < 5; i++) {
		fprintf(fp, "%c,%d,%d,%d---%d\n", boy[i].a[0], boy[i].b[0], boy[i].b[1], boy[i].b[2],boy[i].ave);
	}
	fclose(fp);

return 0;
}

6./*有5名同学三门成绩、平均分,将数据输从磁盘文件"study"中读取,
															排序后存入stu-sort中*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student {
	char a[16];
	int b[3];
	int ave;
	student* p;
};

void change(student* a, student* b) {
	if(a->ave < b->ave){
		student* c;
		c = (student *)malloc(sizeof(student));
		c->b[0] = a->b[0];
		c->b[1] = a->b[1];
		c->b[2] = a->b[2];
		c->ave = a->ave;

		a->b[0] = b->b[0];
		a->b[1] = b->b[1];
		a->b[2] = b->b[2];
		a->ave = b->ave;

		b->b[0] = c->b[0];
		b->b[1] = c->b[1];
		b->b[2] = c->b[2];
		b->ave = c->ave;
	
		free(c);
	}
}

int main() {
	student boy[5];

	//读取
	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\study.txt", "r");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for (int i = 0; i < 5; i++) {
		fscanf(fp, "%c,%d,%d,%d---%d\n", &boy[i].a[0], &boy[i].b[0], &boy[i].b[1], &boy[i].b[2],&boy[i].ave);
	}
	fclose(fp);

	//排序
	for (int i = 4; i >-1; i--) {
		for (int j = 0; j < i; j++) {
			change(&boy[j], &boy[j+1]);
		}
	}

	//输出
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\stu-sort.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for (int i = 0; i < 5; i++) {
		fprintf(fp, "%c,%d,%d,%d---%d\n", boy[i].a[0], boy[i].b[0], boy[i].b[1], boy[i].b[2], boy[i].ave);
	}
	fclose(fp);




return 0;
}

7./*有5名同学三门成绩、平均分,将数据输从磁盘文件"study"中读取,
															添加一条记录,存入到新的文件夹中*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student {
	char a[16];
	int b[3];
	int ave;
	student* p;
};

void change(student* a, student* b) {
	if(a->ave < b->ave){
		student* c;
		c = (student *)malloc(sizeof(student));
		c->b[0] = a->b[0];
		c->b[1] = a->b[1];
		c->b[2] = a->b[2];
		c->ave = a->ave;

		a->b[0] = b->b[0];
		a->b[1] = b->b[1];
		a->b[2] = b->b[2];
		a->ave = b->ave;

		b->b[0] = c->b[0];
		b->b[1] = c->b[1];
		b->b[2] = c->b[2];
		b->ave = c->ave;
	
		free(c);
	}
}

int main() {
	student boy[6];

	//读取
	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\study.txt", "r");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for (int i = 0; i < 5; i++) {
		fscanf(fp, "%c,%d,%d,%d---%d\n", &boy[i].a[0], &boy[i].b[0], &boy[i].b[1], &boy[i].b[2],&boy[i].ave);
	}
	fclose(fp);

	//添加记录
	boy[5].b[0] = 6;
	boy[5].b[1] = 6;
	boy[5].b[2] =6;
	boy[5].ave = 6;

	//排序
	for (int i = 5; i >-1; i--) {
		for (int j = 0; j < i; j++) {
			change(&boy[j], &boy[j+1]);
		}
	}
	


	//输出
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\xin.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for (int i = 0; i < 6; i++) {
		fprintf(fp, "%c,%d,%d,%d---%d\n", boy[i].a[0], boy[i].b[0], boy[i].b[1], boy[i].b[2], boy[i].ave);
	}
	fclose(fp);




return 0;
}

9./*新建一个employee的文件有姓名、职工号、性别、年龄、住址、工资
															抽出工资,新建一个文件*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student {
	char name[16];
	int hao;
	int mw;
	int nianling;
	char vvv[32];
	int gongzi;
	student* p;
};

void change(student* a, student* b) {
		student* c;
		c = (student *)malloc(sizeof(student));
		free(c);
}

int main() {
	student boy[10];
	
	for (int i = 0; i < 10; i++) {
		boy[i].hao = i + 1;
		boy[i].gongzi = (i+1000)*i;
	}

	//新建文件xin
	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\xin.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败\n");
		return -1;
	}
	for(int i=0;i<10;i++){
		fprintf(fp, "%d,工资:%d\n", boy[i].hao, boy[i].gongzi);
	}
	fclose(fp);


return 0;
}

10./*新建一个employee的文件有姓名、职工号、性别、年龄、住址、工资
															抽出工资"xin",新建一个文件
															删除一条记录再存入文件xin1*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student {
	char name[16];
	int hao;
	int mw;
	int nianling;
	char vvv[32];
	int gongzi;
	student* p;
};

void change(student* a, student* b) {
		student* c;
		c = (student *)malloc(sizeof(student));
		free(c);
}

int main() {
	student boy[10];
	
	

	//读取
	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\xin.txt", "r");
	if (fp == NULL) {
		printf("文件打开失败1\n");
		return -1;
	}
	for(int i=0;i<10;i++){
		fscanf(fp, "%d,工资:%d\n", &boy[i].hao, &boy[i].gongzi);
	}
	fclose(fp);

	//删除记录
	boy[3].hao = 0;


	//存入新文件
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\xin1.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败2\n");
		return -2;
	}
	for (int i = 0; i<10; i++) {
		if (boy[i].hao == 0)continue;
		fprintf(fp, "%d,工资:%d\n", boy[i].hao, boy[i].gongzi);
	}
	fclose(fp);

return 0;
}

11./*输入多行字符串,,存入文件zzz中,
								再读取后,将小写变为大写,然后显示出来*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//小写变大写
void change(char* a) {
	for (int i = 0; i < 128; i++) {
		if (*(a+i)>= 97 && *(a+i) <= 122)
			*(a+i)= *(a+i)- 32;
		if (*(a+i) == '/0')break;
	}
}

int main() {
	char a[6][128];
	char b[128];
	int i = 0;
	for (; b[0] != 48 && i < 6; i++) {
		gets_s(b);
		strcpy(a[i], b);
	}

	printf("信信信\n");

	//存入"zzz"文件
	FILE* fp;
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\zzz.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败!\n");
		return -1;
	}
	for (int i = 0; i<6; i++) {
		fprintf(fp,"%s\n", a[i]);
		if (a[i][0] == 48)break;
	}
	fclose(fp);

	/*for (int i = 0;i<6;i++) {
		printf("%s\n", a[i]);
		if (a[i][0] == 48)break;
	}*/

	//读取"zzz"文件
	char a1[6][128];
	char b1[6][128];
	
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\zzz.txt", "r");
	if (fp == NULL) {
		printf("文件打开失败!\n");
		return -2;
	}
	
	for (int i = 0; i<6; i++) {
		fgets(a1[i],128,fp);
		if (a[i][0] == 48)break;
	}
	fclose(fp);

	//小写变大写
	for (int i = 0; i<6; i++) {
		change(&a1[i][0]);
		if (a1[i][0] == 48)break;
	}
	
	//存入到"zzz1"文件中
	fp = fopen("C:\\Users\\didi\\Desktop\\function\\text\\zzz1.txt", "w");
	if (fp == NULL) {
		printf("文件打开失败!\n");
		return -3;
	}
	for (int i = 0; i<6; i++) {
		fprintf(fp, "%s\n", a1[i]);
		if (a1[i][0] == 48)break;
	}
	fclose(fp);

		
	

return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值