C语言
Nop_(void)
这个作者很懒,什么都没留下…
展开
-
删除字符数组中的 * 问题
第一种:题目:删除前部的 * 号思路:程序代码:void fun( char *a ,int n){ int i=0; int k=0; char *p,*t; p=t=a; while(*t=='*') //用 k 来统计前部 * 的个数 { k++; t++; } if(k>n) { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]='\0'; }}...原创 2021-10-10 15:29:32 · 232 阅读 · 0 评论 -
数组0号元素丢失问题
同学写的代码:#include <stdio.h>int main(){ int i,j,t,a[11]; printf("请输入10个数:\n"); for(i=1;i<11;i++) scanf("%d",&a[i]); //从键盘中输入要排序的10个数字 for(i=1;i<=9;i++) for (j=i+1;j<=10;j++) i原创 2021-10-03 10:43:19 · 290 阅读 · 0 评论 -
二维数组与指针
详细解释在这里:(我只分享,摘录我所欠缺的知识)C语言二维数组指针(指向二维数组的指针)详解https://blog.csdn.net/weixin_43323830/article/details/106386859?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163231513016780264050861%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D.原创 2021-09-22 21:07:27 · 81 阅读 · 0 评论 -
将字符串 转化成 数字
long fun(char *p){ int i,len; long x=0; len =strlen(p); while(*p!=0) { x=*p-'0'+10*x; p++; } return x;}原创 2021-09-22 17:58:00 · 205 阅读 · 0 评论 -
用链表存放数据,计算平均值
代码分享:double fun(STREC *h){ int i; double sum=0.0; STREC *p; //定义一个空的结构体 p=h->next; while(p!=NULL) { sum+=p->s; p=p->next; } return sum/N;}原创 2021-09-22 17:00:53 · 456 阅读 · 0 评论 -
求一维数组中的元素的最大值和他的下标,通过指针传给主函数
代码与思路分享:// 函数功能:求一维数组中的元素的最大值和他的下标,通过指针传给主函数// 入口参数:int a[] 待查找的目标数组// int n 数组中的个数// int *MAX 数组中的最大值// int *d 数组的下标// 返回值:无void fun(int a[],int n, int *MAX,int *d){ int i=1; *MAX=a[0]; *d=0; for(i;i&原创 2021-09-22 16:36:57 · 1984 阅读 · 3 评论 -
C语言中求素数问题
写一个例程:函数fun,思路一://入口参数:lim 界限,aa[MAX] 存放素数的数组int fun(int lim, int aa[MAX]){ int i=0; int j=0; int k=0; for(i=2;i<=lim;i++) //遍历小于等于lim的数 { for(j=2;j<i;j++) //遍历素数 if(i%j==0) //有能被整除的数,就跳出循环 break; if(j==i) //判断有没原创 2021-09-19 20:57:29 · 157 阅读 · 0 评论 -
定义一个字符指针去删除数组中目标元素
功能函数分享:void fun( char s[],int c){ int i=0; char *p; //定义一个指针 p=s; //指向s while(*p) /*判断是否为结束符*/ { if(*p!=c) /*判断字符串中字符是否与指定字符相同*/ { s[i]=*p; /*不同将重新组合字符串,*/ i++; } p++; /*相同则处理下一原创 2021-09-18 21:39:11 · 730 阅读 · 0 评论 -
从结构体中寻找满足范围数值的数
结构体数组中包括:学生学号num和成绩stypedef struct{ char num[10]; int s;} STREC;寻找结构体中成绩满足要求的元素函数int fun( STREC *a,STREC *b,int l, int h ){ int i=0; int j=0; int temp=a[0].s; for(i;i<N;i++) { if((a[i].s>=l) && (a[i].s<=h)) b原创 2021-09-17 17:40:54 · 165 阅读 · 0 评论 -
从结构体数组中寻找最小值问题
结构体数组中包括:学生学号和成绩typedef struct{ char num[10]; int s;} STREC;寻找结构体中成绩最小的元素函数int fun( STREC *a, STREC *b ){ int i=0; int j=0; int min = a[0].s; for(i;i<N;i++) { if(min>a[i].s) min = a[i].s; } for(i=0;i<N;i++) { if原创 2021-09-17 16:48:30 · 461 阅读 · 0 评论 -
找出二维数组每列中最大元素,并依次放入pp数组中
代码:void fun(int tt[M][N],int pp[N]){ int i=0;int j=0; int temp; for(i=0;i<N;i++)//遍历列 列下标为i { temp=tt[0][j]; for(j=0;j<M;j++)//遍历行 行下标为j { if(temp<tt[j][i]) { temp=tt[j][i]; } pp[i]=temp; } }}运行结果:...原创 2021-09-09 12:16:08 · 381 阅读 · 0 评论 -
选择排序__从小到大排序无序数组
//用C语言 编写程序:将[3,5,12,8,20,10,17,4,2,11]这几个数组进行从小到大排序#include <stdio.h> int main (){ int i=0; int j=0; int k; int x; int a[10]={3,5,12,8,20,10,17,4,2,11}; for(i=0;i<9;i++) { k=i; for(j=i+1;j<10;j++) { if(a[j]<a[k]) {.原创 2021-09-07 19:49:51 · 849 阅读 · 0 评论 -
从结构体中查询是否有已存在的数据
题目要求:学生成绩由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:函数返回该学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)strcmp()函数 :字符串比较函数//头文件: #include <string.h>//入口参数: s1,s2 指向字符串的指针//function: 比较字符串s1和s2。//返回值: 如果..原创 2021-09-07 10:34:02 · 1051 阅读 · 0 评论 -
函数fun功能是:计算出x所指数组中n个幂数之和并返回
结构体数组的相关知识可以参考 :结构体数组#include <stdio.h>#pragma warning (disable:4996)#define N 5//结构体数组struct mpow{ double a; int t;};//结构体struct mpow两个成员的意义是: a为幂的底,t为幂的指数。double fun(struct mpow *x,int n){ int i,j; double sum=0.0; for(i=0;i&...原创 2021-09-05 16:48:44 · 1481 阅读 · 5 评论 -
数组中元素的移动
题目要求:代码 :void fun(int *w, int p, int n){ //数组w ,数组下标,数组个数 int i=1; int m; char ch; for(t=0;t<p+1;t++)//移动p+1个字符 { ch=w[0]; //把数组的零号元素取出来 for(i=1;i<n;i++) { w[i-1] = w[i]; //将后一个数赋值给前一个数 } w[n-1]=ch; //原创 2021-09-03 18:21:12 · 611 阅读 · 0 评论 -
关于对return语句的理解
概念:函数是C语言的基本构件,一个C程序可以由一个主函数和若干个子程序函数构成,由主函数调用其它子程序函数,其他子程序函数也可以互相调用。通常希望通过函数调用使主函数能得到一个确定的值,这就是函数的返回值。注意:如果你函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。return语句的意义:在函数中,如果碰到return 语句,那么程序就会返回调用该函数的下一条语句执行,也就是说跳出函数的执行,回到原来的地方原创 2021-09-02 23:55:46 · 465 阅读 · 0 评论 -
函数fun,其功能是:将ss所指字符串中所有下标为奇数位上的字母转换为大写(若该位置上不是字母,则不转换)。
程序代码:void fun ( char *ss ){ int i=0; for(i;ss[i];i++) { if( (i%2)==1 && ( ss[i] >= 'a' ) && ( ss[i] <= 'z' )) ss[i]=ss[i]-32; }}结果显示:原创 2021-09-02 19:31:48 · 5293 阅读 · 0 评论 -
编写函数 fun 功能是:判断t所指字符串中的字母是否由连续递增字母序列组成(字符串长度大于等于2)
三种思路分析:int fun(char *t){ int flag=1,i; char before_ch=t[0]; //将数组t中第一个元素,存起来方便与下一个元素作比较 char current_ch; //定义一个字符变量 int len=strlen(t); //求字符串t的长度 if(len<2) { return 0; } for(i=1;t[i]!='\0';i++) .转载 2021-08-31 00:11:23 · 1151 阅读 · 1 评论 -
编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1~m个字符,平移到字符串的最后,把第m+ 1到最后的字符移到字符串的前部。
void fun (char *w,int m){ int i,j; char t; for(i=1;i<=m;i++) /*进行m次的循环左移*/ { t=w[0]; //将数组w的第一个字母暂存到t变量中 for(j=1;w[j]!='\0';j++) /*从第2.原创 2021-08-30 23:25:25 · 4737 阅读 · 0 评论 -
指针 *p
指针:一种特殊的变量。指针保存的值是内存地址,那么我们就用指针来通过内存地址访问程序元素。访问变量的方式有俩种:1.通过变量名直接访问2.通过内存地址访问。内存地址:本质:无符号整数(unsigned int )(32位系统可访问的最大字节为4 , 64位系统可访问的最大字节为8 )通过内存地址+长度确定一个变量中保存的值。(先访问低字节,再访问高字节)书写命名规则:type * Pointer;%p :格式控制符“%p”中的p是pointer(指针)的缩写...原创 2021-08-20 19:16:52 · 472 阅读 · 0 评论 -
利用宏定义一个函数
代码#include<stdio.h>#define SWAP(a,b) {int t=a;a=b;b=t;} //宏定义一个swap函数 int main(){ int x = 1; int y = 2; printf("x=%d,y=%d \n", x,y); SWAP(x,y); printf("x=%d,y=%d \n", x,y); printf("\n"); return 0;}运行结果:函数中 形参的值只会..原创 2021-08-18 16:26:37 · 1989 阅读 · 0 评论 -
递归数列: 累加数列 斐波拉契数列
累加函数:int sum(int n){ int ret = 0; if( n == 1 ) ret = 1; else ret = n + sum(n-1); return ret;}斐波拉契数列int fac(int n){ int ret = 0; if( n == 1 ) ret = 1; else if( n == 2 ) ret = 1; e原创 2021-08-18 12:18:26 · 130 阅读 · 0 评论 -
将字符串转换成整形数
代码:#include <stdio.h>//遍历字符串中的字符int str2int(char str[]){ int ret = 0; int sign = 0; int i = 0; if( getNumber(str[0]) != -1 ) { sign = 1; i = 0; } else if( str[0] == '+' ) { sign = 1;原创 2021-08-18 11:42:55 · 311 阅读 · 0 评论 -
静态局部变量static
代码:#include <stdio.h>int m;int func(int x){ static int s_var; // 全局数据区中的变量,默认初始化为 0,并且,只做一次初始化 s_var += x; return s_var;}int main(){ int i = 0; for(i=1; i<=5; i++) { printf("func(%d) = %d\n", i, func原创 2021-08-16 19:52:26 · 63 阅读 · 0 评论 -
实践编程 区分 局部变量和全局变量
实践编程 区分 局部变量和全局变量在不同作用域的体现观察局部变量的作用范围,何时生效,何时失效???答:局部变量的值只作用于所定义他的这个大括号内,跳出方括号将失去他所被定义的值全局变量不会受局部的改变而导致全局变量的值发生改变。#include <stdio.h>int var = 1; //全局变量 void func(){ printf("var = %d\n", var);}int main(){ int var = 2; ...原创 2021-08-16 19:20:43 · 167 阅读 · 0 评论 -
对数组中的元素进行大小排序
选择数组 a[] 中 b 到 e 的最小元素/*************************@function: 选择数组 a[] 中 b 到 e 的最小元素 @return: 最小元素在数组中的下标 @函数类型 int ; @入口参数 数组a[] 数组中的b,到 e,@author:奋青 *************************/int Min (int a[],int b,int e){ int r=b; int i=0; for(i=b;..原创 2021-08-16 15:42:55 · 1538 阅读 · 0 评论 -
去除字符数组元素中的某个 ‘ 字符 ‘
代码:去除'\0’ 0等价于'\0' 大家可以试一下效果一样 //去除字符数组元素中的某个 '字符' char m[]="abcde\0fg\0" ; int size = sizeof(m); int i=0; int j=0; while( i<size ) { if( m[i] == 0 ) //去除\0 { for(j=i+1;j<size;j++) //迁移后面的元素 { m[j-1]=m[j]; } ...原创 2021-08-15 19:21:42 · 292 阅读 · 0 评论 -
从键盘获取矩阵 然后 转置矩阵
从键盘中获取一个二维数组见上一篇博客https://blog.csdn.net/qq_46136319/article/details/119714610在此基础上对行列变换 ,if i<j 交换位置 //转置 printf("change \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i<j) { int t=arr[i][j]; arr[i][j]=arr[j][i]; ...原创 2021-08-15 15:44:12 · 180 阅读 · 0 评论 -
按矩阵形式打印数组
代码: // 依次输入一个二维数组,然后按矩阵形式打印 int arr[3][3]; int i=0; int j=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("input arr[%d][%d] = ",i,j); scanf("%d",&arr[i][j]); } } printf("Matrix:\n"); for(i=0;i<3;i++) { for(j=0;j&l原创 2021-08-15 15:36:34 · 539 阅读 · 0 评论 -
查询数组中元素出现的次数
方法一: int arr[]={0,0,2,4,4,5,6,7}; int len = sizeof(arr)/sizeof(arr[0]); //求数组中变量的个数 int i=0; int j=0; int n=0; for(i=0;i<len;i++) { n = 0; for(j=0;j<len;j++) { if( i==arr[j] ) n++; } printf("%d : %d \n",i,n); } 方.原创 2021-08-15 15:32:56 · 895 阅读 · 0 评论 -
数组内存的大小
sum [ ] 数组变量定义见上一篇博客 int s = sizeof(sum); printf("s = %d",s);运行结果:(sum数组大小)分析:int 占 4字节,101个 int 型变量,所以sum数组内存大小为404个字节。原创 2021-08-12 17:12:36 · 1450 阅读 · 0 评论 -
i++ 和 ++i 的区别
i++ 和 ++iint i = 0;i++;printf("%d",i);int i = 0;++i;printf("%d",i);结果均为:但是在你参与循环并且判断的时候就要体现是先自加还是现参与运算。看for循环的值到底为什么,每循环一次值的变化/* 看for循环的值到底为什么,每循环一次值得变化 int i; for(i=1;i<3;i++) printf("i = %d \n",i);*/结果:...原创 2021-08-12 15:44:26 · 273 阅读 · 0 评论 -
常量和变量的区别
// 常量 不可改变 //1.字面量(直接表示值含义的符号) eg: 字符,字符串//2.宏常量(符号化的字面量) eg :#define temp 5//3.枚举常量 eg:(只能是int型) enum { man = 1, woman = 0, }; ...原创 2021-08-12 15:21:18 · 166 阅读 · 0 评论 -
C语言__如何给数组赋值__累加法制作一个数组字典
先通过累加法将结果存到数组中,然后要哪个结果调用哪个结果。减少了计算机每次计算的运算过程。// 累加问题,将计算得到的值存到数组中 int sum[101]; int n=0; int i=0; for(n=0;n<101;n++) { sum[n]=0; for(i=0;i<=n;i++) { sum[n]+=i; } printf("sum[ %d ] = %d\n",n,sum[n]); } printf("input n :"); s.原创 2021-08-12 15:13:48 · 479 阅读 · 1 评论