自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yooppa的博客

喜欢deca joins 的浴室

  • 博客(28)
  • 收藏
  • 关注

原创 输入整数m,将所有大于1小于整数m的素数存入所指定的数组中

数组最多只存放100个素数,超过则提示“overflow”若输入的m≤0,则提示“error”,程序终止。分析:按要求来看:整个程序分为:输入目的数字,进行大于1小于此数的每个数进行判定是否为素数,若为则在先前定义的数组中存入且用特定数字变量如:cnt,作为信号看是否超过100.之或做输出格式整理,多少个之后换行,算法问题。代码展示:#include <stdio.h>int main(void){ int m, cnt = 0, i, j; int array[101

2021-02-28 10:53:03 2518

原创 钻石菱形图案打印

图案打印实际就输出的问题,计算每个点的位置,给出相应算法配合循环结构和选择结构。有时候复杂的图案打印需用演算纸,就如同做规律题。代码如下:#include<stdio.h>int main(){ int i,j; int number; printf("请输入行数:"); scanf("%d",&number); for(i=1;i<=number;i++){ for(j=1;j<=number-i;j++) { printf(" "

2021-02-27 11:50:16 351

原创 时间随机种子,猜数字大小

1.需调用库函数<stdlib.h>2.srand(seed);3.rand()随机函数游戏机制:随便输入一个数开始过大过小有提示直至猜对。代码展示:#include<stdio.h>#include<stdlib.h>int main(){ int m,seed,a;printf("please input any number to start it\n");scanf("%d",&seed);srand(seed);m=r

2021-02-26 10:57:50 148

原创 简单链表

链表又包括单向链表、双向链表、循环链表等。在掌握使用其他链表之前,最先需要掌握单向链表。链表中最基本的结构是结点,是由数据域和指针域组成的。其中数据域可以是很复杂的成员或结构体,指针域是指向结点数据类型的指针。单向链表有一个头指针指向第一个结点,每个结点的指针指向其后继结点。最后一个结点指针存0值,表示无后继。简单链表示例:#include<stdio.h>typedef struct _node{ int data;//数据 struct _node *next;//指针}Nod

2021-02-25 10:37:41 335

原创 位运算(2)

“取反”运算符(~)~是一个单目(元)运算符,用来对一个二进制数按位取反,即0变1,将1变0.例如,~025是对八进制数25(即二进制数00010101)按位求反。例如:00010101~——————11101010(八进制-25)左移运算符(<<)左移运算符是用来将一个数的各二进制位全部左移若干位。例如:a=<<2将a的二进制左移2位,右边补0.若a=15,即二进制00001111,左移2位得00111100,(十进制60)。若高位左移后溢出

2021-02-24 12:25:37 376

原创 位运算(1)

概念■位运算是指按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。■例如:将一个存储单元中的各二进制位左移或右移-位,两个数按位相加等。■C语言提供位运算的功能,与其他高级语言(如PASCAL)相比,具有很大的优越性。位运算符和位运算(1)位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量。■(2)运算量只能是整型或字符型的数据,不能为实型数据。“按位与”运算符(&).含义:参加运算的两个数据,按二进制。位进行“与”运算。如果两个相应的二进制位都为|,

2021-02-23 16:09:14 196

原创 计算矩阵乘法

线性代数特别不好算,用程序解决繁琐的事,电脑最喜欢干的事就穷举。比如计算:3行4列矩阵乘以4行5列矩阵。代码展示:#include<stdio.h>#define M 3#define N 4#define L 5int main(){ int i,j,k; int a[M][N]; int b[N][L]; int c[M][L]={0}; printf("输入3行4列矩阵(12个数):\n"); for(i=0;i<M;i++)

2021-02-22 12:50:13 534

原创 预处理(3)

文件包含:尽管我们很熟悉,但对文件包含命令还要说明以下几点:一个include命令只能指定一个被包含文件,若有多个文件要包含,则需要用多个include命令。文件包含允许嵌套,即在一个被包含的文件中又可以包含另一个文件。包含命令中的文件名可以用双引号括起来,也可用尖括号括起来。例如以下写法是允许的:#include"stdio.h"#include<stdio.h>但是这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目

2021-02-21 16:51:33 144 1

原创 你想要的杨辉三角

代码分析:简单的输入输出数组循环套用代码展示:#include<stdio.h>int main(){ int i,j,a[11][11]={{0,1}}; for(i=1;i<=10;i++) for(j=1;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=1;i<=10;i++) { for(j=1;j<=i;j++) printf("%5d",a[i][j]); print

2021-02-20 16:25:27 42 2

原创 预处理(2)

上一次是无参的宏定义;作为进阶,这次是带参的宏定义。C语言允许宏定义带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。带参宏定义的一般形式:#define 宏名(形参表) 字符串注意:带参宏定义中,宏名和形参表之间不能有空格出现。例如以下给出的代码,#define M(y) yy+3y 和#define M (y) yy+3y是不一样的,第二者会出现编译错误。在带参宏定义中,形式参数不分配内存单

2021-02-19 16:38:47 80

原创 一般函数作参数和数组名作参数区别

此次区别的分析来源于实践之后…代码示例:一般函数作参数:#include<stdio.h>void main(){float a,b;float add(float a,float b);scanf("%f%f",&a,&b);add(a,b);printf("输出主函数的a=%f\n",a);}float add(float a,float b){a=a+b;printf("输出子函数的a=%f\n",a);return a;}运行结果:

2021-02-18 13:41:46 590

原创 (1)预处理命令“#“学习

其实一直都很熟悉,但弄清你为何每次编程都会打"#",实际就是弄清每次编程的步骤都在干什么。如包含命令#include<stdio.h>,宏定义命名#define PI 3.1415926 等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分无参宏定义:无参宏定义的宏名不带参数。其定义的一般形式为:#define 标识符 字符串标识符为宏定义量名称对于宏定义值得说明的是:1.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。

2021-02-17 22:45:03 341

原创 用指向函数的指针作函数参数

指向函数的指针通常作为函数参数来运用;示例:随机生成n个整数,按升序或降序排序。#include<stdio.h>#include<stdlib.h>#include<time.h>void create(int *arr,int n);void output(int *arr,int n,int(*compare)(int first,int second));int ascending(int first,int second);int descen

2021-02-16 17:58:28 402

原创 指向函数的指针

程序在运行时,函数也是放在内存里面的。每个函数都有一个入口地址即函数的代码首地址。使用指针指向函数入口地址,即可以使用指针调用相应函数。用函数指针变量调用函数若需要函数指针来调用函数,必须先声明指向函数的指针,定义格式如下:函数类型 (*函数指针名)(函数形参表);其中函数类型必须匹配要调用的函数类型,函数形参表要匹配调用的函数形参表。如:int max(int x,int y);int min(int x,int y);int (*fun)(int x,int y);其中,前两个函数是普

2021-02-15 10:45:42 1005

原创 链表概述

链表是一种常见的重要数据结构;在处理数据时,将数据转化成线性表(多个数据的有限序列)处理可以将复杂的算法转变为较简单的算法。一维数组就是线性表的一种大多时候按线性处理。数组也叫顺序线性表(顺序指两个元素之间的物理存储表示两个元素的前后关系),顺序线性表要求多个元素连续存放。链式线性表(链表)的两个元素之间的前后关系由元素中的一个指针表示(一般前面的元素存放着后面元素的地址),链表中元素存储的物理位置与元素的序列无关。使用数组类型处理数据时需要事先知道元素个数上限(或假定数据总数不超过某个值),而且程序

2021-02-14 23:42:10 117

原创 指针数组作main函数的形参

在C语言程序中,可以通过带参数的main函数来获得这些参数信息:m带参数的main函数示例:#include<stdio.h>int main(int argc,char *argv[]){ int i; printf("命名:%s\n",argv[0]); printf("参数:\n"); for(i=1;i<argc;i++) { printf("第%d个参数:%s\n",i,argv[i]); } return 0;}C语言规定,main函数的形参

2021-02-13 11:42:45 391

原创 库函数malloc

使用库函数malloc可以动态分配内存,该函数是在堆内存查找可用的连续内存空间,并将该内存空间的首地址返回,如果分配不成功则返回NULL(0值)。如:p=(int *)malloc(4);表示查找可用的连续4个字节内存的空间,并将该内存首地址强制转换为指向整型数据的指针赋值给p.代码展示:v#include<stdio.h>#include<stdlib.h>int main(){ int *pointer; pointer=NULL; pointer=(int

2021-02-12 19:32:31 757

原创 字符型指针数组输出

写在之前:此次的归纳来自以下题目,在之后的代码展示是对于此次问题的实践。题目展示:若有说明:char *language[ ]={“FORTRAN”, “BASIC”, “PASCAL”, “JAVA”, “C”};则表达式*language[1]>*language[3]比较的是( )。字符B和字符J疑问实践代码展示:#include <stdio.h>void main(){ int i; char *C[]={"FORTRAN", "BASIC", "

2021-02-11 12:58:16 4209

原创 指针细节部分

一. 变量的指针和指向变量的指针变量变量的指针即是该变量所表示的内存空间占用的内存地址。存放内存地址数据的变量称为指针变量,若存放的内存地址是另一个变量所表示的内存空间,则称该指针变量指向变量。着重强调:int *int *表示pointer所指向的内存空间(number 变量表示的空间)是整型。无论指向什么类型的内存空间,指针变量在vc中始终占4个字节。指针是固定的。指针变量的引用(基础内容说明):指针变量也是变量,只不过该变量里面存放的是地址数据,不是整数等简单类型。指针变量的用法有两种,一

2021-02-10 11:48:20 49

原创 指向指针的指针

指针变量指向的内存空间不仅可以是普通数据也可以是另一个指针。动态二维数组示例:代码如下:#include<stdio.h>#include<stdlib.h>int **assign(int size,int n1,int n2);void destroy(int **p,int n1,int n2);int main(){ int i,j,n1,n2; int **test; printf("输入二维数组行数和列数:"); scanf("%d%d",&a

2021-02-09 13:15:35 85

原创 利用指针数组进行字符串排序

概念:一个数组的元素均是指针,则该数组称为指针数组。使用指针数组处理字符串非常适合。由于字符串长度不定,使用二维字符数组处理会大量浪费存储空间。代码示例:#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ int i,j,len; char *temp; char *str[5]; printf("请输入5个字符串:\n"); temp=(char *)malloc

2021-02-08 11:15:03 6346

原创 C语言:从口袋中取出色彩球情况统计

题目:口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。要求声明枚举类型来表示红、黄、蓝、白、黑5种颜色。分析:首先例举情况,注意是先后有顺序要求。一个一个情况的去试也就是穷举法是计算机最擅长的,for循环做起来之后考虑不能同色if switch 语句条件判断之后作输出。代码展示:#include <stdio.h>int main(){enum Color {red,yellow,blue,white,

2021-02-07 20:26:29 1784

原创 C语言投票系统及选拔最高票数者

题目:完成一个对候选人得票的统计程序。假设有3个候选人,使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。思路:利用结构体数组初始化三个人的票数。for循环输入输出,具体细节见代码示例。代码示例:#include<stdio.h>#include<string.h>struct people{ char name[80]; int count;}leader[3]={"yyp",0,"ppp",0,"www",0}

2021-02-06 20:59:05 2167 1

原创 返回指针值的函数

函数可以不返回值,可以返回整数、浮点数、字符类型等,也可以返回指针类型数据。如字符串复制函数strcpy的函数原型为:char *strcpy(char *strDestination,const char *strSource);如字符串连接函数strcat的函数原型为:char *strcat(char *strDestination,const char *strSource);这两个字符串的返回值均为形参strDestination 里面的值,即是主调函数传递的字符串首地址。这些字符串函

2021-02-05 20:49:41 3569

原创 用结构体变量和指向结构体的指针作函数参数

实参是结构体变量时,形参就是结构体变量,修改形参值不会改到实参数据。当实参是结构体类型指针时,形参就需要使用指向结构体类型的指针变量,修改形参所指向的内存数据就会修改到实参数据。#include<stdio.h>typedef struct _stu{ int number; char name[20]; int score[2];}Stu,*pStu;void display(Stu st);void modify(pStu pst, int n);int main(){

2021-02-04 21:06:40 945

原创 单词反转

不改变单词顺序,将单个单词翻转代码示例:#include <stdio.h>#include <stdlib.h>#include <string.h>void result(char str1[], char str2[]);void revert(char st1[], char st2[]);int main(void){ char str[80], str1[80]; printf("Input:\n"); gets(str); re

2021-02-03 19:35:26 305

原创 指向结构体数组的指针

使用指向结构体数组的指针变量与指向一维数组的指针变量类似,可以修改指针变量的值(const可以限定)代码示例:#include <stdio.h>typedef struct _test{ int i; double d; char str[16];}Test,*pTest;int main(){ int i; Test te[10]={{1,1.1,"111"},{2,2.2,"222"},{3,3.3,"333"},{4,4.4,"444"}}; pTest p

2021-02-02 17:06:27 967

原创 指向结构体类型的指针

结构体变量的指针就是该变量所占据的内存段的起始地址。可以定义一个指针变量来指向一个结构体变量,也可以动态分配内存存放结构体各成员数据。与指向普通数据类型的指针变量相同,也可以定义指向结构体数据类型的指针变量。代码示例:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct _info{ int number; char name[20]; char *address;}I

2021-02-01 15:28:20 4496

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除