- 博客(18)
- 收藏
- 关注
原创 bug和scanfD17
1.不使用第三个变量交换数值(存在Bug)void Swap(int* p1, int* p2){ *p1 += *p2; *p2 = *p1 - *p2; *p1 = *p1 - *p2;}void Reverse(int* arr, int len){ for (int i = 0, j = len - 1; i < j; i++, j--) { Swap(&arr[i], &arr[j]); }}void Show(int* arr, int l
2022-02-28 16:50:28 74
原创 通过Swap函数学习指针应用D16
a=10,b=20通过函数交换a,b的值错误1.#include<stdio.h>void Swap(int a, int b){ int tmp = a; a = b; b = tmp;}int main(){ int a = 10; int b = 20; printf("%d,%d\n", a, b); Swap(a, b); printf("%d,%d", a, b); return 0;}错误原因:main函数和swap函数无法联动错误2
2022-02-20 23:24:51 246
原创 字符串比较函数、二维数组D15
一.字符串比较函数"abc"<"x" "abc"="abc" "abc">"abb" x>a直接判定,b、c不用继续比较 返回小于0的数 返回0 返回大于0的数 #include<stdio.h>#include<assert.h>int Mystrcmp(const char* str1, const char* str2){ assert(str1 != NULL && str..
2022-02-18 21:32:29 580
原创 例题D14
一.筛选法求素数用筛选法求100之内的素数#include <stdio.h>void SiftPrime(){ int arr[101];//标记变量 int i; for(i=0;i<101;i++) { arr[i]=1; } arr[1]=arr[0]=0;//0和1不参与 for(i=2;i<101;i++) { for(j=i+1;j<101;j++) { if(j%i==0)//j是i的倍数,则j不是素数 {
2022-02-18 00:13:45 442
原创 assert和constD13
assert:assert(表达式);表达式为真则什么都不做,为假则程序崩溃,并提醒崩溃位置,在debug 版本有效,release自动失效断言需要引用断言头文件:#include<assert.h>const:定义常变量1.基本类型对于const是透明的const int ca=10;和int const cb=10;等价2.const只修饰直接右边,将其变为只读3.权限只能同等转递或缩小转递int main(){ int a=10...
2022-02-15 22:27:21 360
原创 根据字符串函数学设计D12
一.将字符串src拷贝到des中法1void Mystrcpy(char*des,char*src){ int i; for(i=0;src[i]!='\0';i++)//'\0'在字符串标记结尾 { des[i]=src[i]; } des[i]='\0'; } 法2char *p=arr;//数组名表示数组首元素的地址数组和指针有如下等式:p[i]==*(p+i); arr[i]==*(arr+i)void Mystrcpy 1(char*des,...
2022-02-14 23:02:40 282
原创 折半查找,字符数组定义,字符数组使用D11
一.用折半查找学习调试折半查找前提:数据必须有序。在长度为len的数组arr中,查找关键字key,成功返回下标,失败返回-1二.字符数组定义1.把drr[10]中元素依次表示出来#include<stdio.h>int main(){ int arr[]={1,2,3,4}; char brr[10]; short crr[10]; double drr[10]={12.3,34.5,56.7,67.9}; for(int i=0;i<sizeof(dr
2022-02-11 22:08:21 509
原创 指针定义演练,指针的大小D10(补课)
一.指针定义演练练习一.//定义三个指针变量p1,p2,p3,分别保存a,b,c的地址int *p1=&a;int *p2;p2=&b;int *p3=&c;//通过p1,p2,p3,实现c=a+b;不能直接使用a,b,c*p3=*p1+*p2;//通过p1,p2,p3,实现c=a*b*p3=*p1**p2;//通过p3,实现c=c+100;*p3+=100;//通过p1,p2,p3,输出a,b,c的值printf("%d,%d,%d\n",*p1,
2022-02-10 20:58:23 510
原创 一维数组回顾,指针定义及初始化D9
一.一维数组回顾数组名作为形参,只标记数组的开头,不包含长度在写数组的函数时,一定要传数组名和数组长度#include<stdio.h>void Show(int arr[],int len){ for(int i=0;i<len;i++) { printf("%d",arr[i]); } printf("\n");}int main(){ int brr[10]={1,2,3,4,5,6,7,8,9,10}; Show(brr,sizeof(brr
2022-02-07 00:07:19 673
原创 一维数组D8
一.一维数组的定义和初始化1.数组:类型 数组名[ ];int arr[10]; //定义一个整型数组,数组名为arr,长度为10int brr[10]={1,2,3,4,5,6,7,8,9,10};int err[]={1,2,3,4,5,6,7,8,9,10};//[]中默认为10局部变量:定义在函数内部的变量包括数组,默认值为随机值若数组只初始化一部分则剩余部分为0常见错误:int err[2]={1};printf("%d\n",err[0]/err[1])
2022-02-05 23:37:47 614
原创 算法之枚举D7
1.两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z三人。用抽签决定比赛名单。有人向队员打听比赛名单,A说不和X比,C说不和X,Z比,请编写程序找出3对赛手的名单。#include <stdio.h>void Match(){ for(char a='X';a<='Z';a++) { for(char b='X';b<='Z';b++) { for(char c='X';c<='Z';c++) { if(a!='
2022-02-05 00:00:27 463
原创 循环举例、函数设计、例题D6
1.循环举例之求PI的值#include<stdio.h>int main(){ double tmp = 0; double n = 1; double m = 1; int flg = 1; while (n / m >= 0.000001) { tmp += flg * n / m; flg *= -1; m += 2; } printf("PI=%f\n", tmp * 4); return 0;}2.循环举例之斐波那契数列#i
2022-02-04 21:40:10 443
原创 while、do while、printf、scanf、break、continue D5
1.while循环while(表达式1){ 语句块1}表达式1为真则循环继续,为假则循环结束例题.求和1~10#include<stdio.h>int main(){ int sum=0; int i=1; while(i<=10) { sum+=i; i++; }printf("%d\n",sum);return 0;} 2.do while循环do{ 语句块1}while(表达式1)
2022-01-19 22:26:16 505
原创 一些题目讲解D3
1.判断2000~2500年间的闰年#include<stdio.h>int main(){ for(int i=2000;i<=2500;i++) { if(i%4==0&&i%100==0||i%400==0) { printf("%d\n",i); }return 0;} 2.判断任意一个数是否为素数#include<stdio.h>int main(){
2022-01-16 20:36:37 248
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人