目录
第八章
学习到这里,C语言的基础知识已经学习的差不多了,接下来是最重要的指针与结构体的学习,这部分了解简单,要想精通有点难度,可能接下来更新的速度会放慢。
在学习C语言的过程中,越往下学越觉得自己不会的很多,需要学习的很多,需要补的很多,经常会悔恨自己过去的时间就那样浪费了,没有学习一些需要学习的东西。
另外第八章我只做的我会的和我觉得有用的题,剩下的等学会了和等有时间了就补上。
8-1
#define _CRT_SECURE_NO_WARNINGS
#define diff(x,y) x-y
#include<stdio.h>
int main()
{
int x = 0, y = 0;
printf("请输入两个数:");
scanf("%d %d", &x, &y);
printf("他们的差值为:%d",diff(x,y));
return 0;
}
8-2
#define _CRT_SECURE_NO_WARNINGS
#define max(x,y) (((x)>(y))?(x):(y))
#include<stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0;
printf("请输入四个值:");
scanf("%d%d%d%d", &a, &b, &c, &d);
//这个方法是分别对a、b进行大小比较,对c、d进行大小比较,最后将这两组中的大值在进行一次大小比较
printf("其中最大值为:%d\n", max(max(a, b), max(c, d)));
//这种方法是先从a、b中选出最大值,在与c比较选出最大值,再将选出的最大值与d相比,进而选出最终的最大值
printf("其中最大值为:%d\n", max(max(max(a, b), c), d));
return 0;
}
8-3
#define _CRT_SECURE_NO_WARNINGS
#define swap(type,a,b) (c=a,a=b,b=c)
#include<stdio.h>
int main()
{
int x = 5, y = 10;
int c = 0;
swap(int, x, y);
printf("x=%d\ny=%d", x, y);
return 0;
}
8-4
#define _CRT_SECURE_NO_WARNINGS
#define number 5
#include<stdio.h>
void bsort(int a[], int n)
{
int i = 0, j = 0;
for (i = 0; i < n-1; i++)
for (j = 0; j < n-1; j++)
{
if (a[j] > a[j + 1])
{
int temp = 0;
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
int main()
{
int height[number] = { 0 };
int i = 0;
printf("请输入%d个人的身高:\n", number);
for (i = 0; i < number; i++)
{
printf("%d号:", i + 1);
scanf("%d", &height[i]);
}
bsort(height, number);
puts("按升序排列");
for (i = 0; i < number; i++)
{
printf("%d号:%d\n", i + 1, height[i]);
}
return 0;
}
8-6
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int n = 0, t = 1;
int i = 0, j = 0;
printf("请输入一个整数:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
t *= i;
}
printf("其阶乘为:%d", t);
}
第十章
第十章内容有点少,所以就不新占一篇blog了(我可不是个爱水文章的人哈哈),至于第九章为啥没有呢,摁。。。,我觉得第九章有些简单,就不上传了。
10-1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void adjust_point(int *p)
{
if (*p < 0)
*p = 0;
else if (*p > 100)
*p = 100;
else
;
}
int main()
{
int i = 0;
printf("Please input a number:");
scanf("%d", &i);
adjust_point(&i);
printf("The operated number is :%d",i);
return 0;
}
10-2
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//前一天就不写了 方法都是一个方法
void decrement_date(int * y, int * m, int * d)
{
if ((*y % 4 == 0 && *y % 100 != 0) || *y % 100 == 0)
{
if (*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 8 || *m == 10 || *m == 12)
{
if (*d == 31)
{
if (*m == 12)
{
*y += 1;
*m = 1;
}
else
*m += 1;
*d = 1;
}
else
*d += 1;
}
else if (*m == 4 || *m == 6 || *m == 11)
{
if (*d == 30)
{
*d = 1;
*m += 1;
}
else
*d += 1;
}
else
{
if (*d == 29)
{
*d = 1;
*m += 1;
}
else
*d += 1;
}
}
else
{
if (*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 8 || *m == 10 || *m == 12)
{
if (*d == 31)
{
if (*m == 12)
{
*y += 1;
*m = 1;
}
else
*m += 1;
*d = 1;
}
else
*d += 1;
}
else if (*m == 4 || *m == 6 || *m == 11)
{
if (*d == 30)
{
*m += 1;
*d = 1;
}
else
*d += 1;
}
else
{
if (*d == 28)
{
*m += 1;
*d = 1;
}
else
*d += 1;
}
}
}
void increment_date(int* y, int* m, int* d)
{
}
int main()
{
int y = 0, m = 0, d = 0;
printf("Please input year month day:");
scanf("%d %d %d", &y, &m, &d);
decrement_date(&y, &m, &d);
printf("%d %d %d", y, m, d);
/*increment_date(&y, &m, &d);
printf("%d %d %d", y, m, d);*/
return 0;
}
10-3
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*这道题处在这里肯定是想让我们使用刚才例题的方法进行
解答,所以依然应该使用刚才例题中的swap函数,由于是三
个数进行比较,所以应该调用三次*/
void swap(int *px, int *py)
{
int t = *px;
*px = *py;
*py = t;
}
void sort3(int* n1, int* n2, int* n3)
{
if (*n1 > *n2)
{
swap(n1, n2);
}
if (*n2 > *n3)
{
swap(n2, n3);
}
if (*n1 > *n2)
{
swap(n1, n2);
}
}
int main()
{
int n1 = 0, n2 = 0, n3 = 0;
printf("Please input three numbers:");
scanf("%d %d %d", &n1, &n2, &n3);
sort3(&n1, &n2, &n3);
puts("升序排列:");
printf("%d %d %d", n1, n2, n3);
return 0;
}
10-4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define num 6
void set_idx(int* v, int n)
{
int i = 0;
for (i = 0; i < n; i++)
{
v[i] = i;
}
}
int main()
{
int i = 0;
int arr[num] = { 0 };
set_idx(arr, num);
for (i = 0; i < num; i++)
{
printf("arr[%d]=%d\n", i, arr[i]);
}
return 0;
}
10-5
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//根据所学的知识我们可以知道,是从数组的第三个元素开始变为99,变两个。
void ary_set(int v[], int n, int val)
{
int i = 0;
for (i = 0; i < n; i++)
{
v[i] = val;
}
}
int main()
{
int i;
int a[] = { 1,2,3,4,5 };
ary_set(&a[2], 2, 99);
for (i = 0; i < 5; i++)
{
printf("a[%d]=%d\n", i, a[i]);
}
return 0;
}