- 博客(21)
- 收藏
- 关注
原创 C语言————文件的打开(知识点总结+举例)
fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中:“文件指针名”必须是被说明为FILE 类型的指针变量;“文件名”是被打开文件的文件名;“使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。举两个例子:例①:FILE *fp;fp=("file a","r");其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。例②:又如:FI..
2022-01-10 16:18:49 6117 1
原创 C语言————下面函数的功能是计算字符串的长度
计算字符串的长度其原理是:位置差看下面的详细讲解:①定义一个字符串s[1000]="ABCDEFG";并给其初始化赋值ABCDEFG;②既然是靠位置差来计算字符串的长度,所以我们利用指针p的移动,一直移动到末尾的'\0'再结束指针的移动;③既然此时指针p已经知道末尾'\0'的位置,所以可以用p的地址和s的地址做减法产生的差就是两个地址的差。(即:地址差=p-s)看下面的程序吧!#include<stdio.h>int len(char s[]) ..
2022-01-10 14:58:00 1493
原创 C语言————将字符数组c中的world复制到字符数组s内
char s[20],c[]="HelloWorld";首先看得出来s是一个未经过初始化的一位数组,想将c数组内的World元素复制过去,可以引用字符串复制函数“strcpy”。字符串复制函数strcpy用法:格式: strcpy (字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。举例:#include<stdio.h>#incl..
2022-01-09 15:43:40 1074
原创 C语言————输入两个数,求这两个个数的最大公约数
“什么叫最大公约数?”大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。(如: 在2、4、6中,2就是2,4,6的最大公约数。)思考(一):如此我们可以考虑到一个问题,在程序里面,该最大公约数从1开始增加,一直增到什么时候为止?答案是:需要满足同时小于输入的两个数,如果大于输入两个数的任意一个,就结束循环的条件。思考(二):在程序里面如何判断这个数i是否为最大公约数?答案是:当这个数i能满足同时被输入的两个数整除的时候就是这两个数的最大公约..
2022-01-08 16:25:08 4243
原创 C语言————为一维数组的每一个元素都赋值
思路:①首先定义一个数组;②既然是每一个元素都要被初始化赋值,则可以设计一个循环,直到遇到'\0'再结束。先看一下程序吧!#include<stdio.h>void main(){ int a[10],i=0; //定义该数组,再定义一个可以循环的未知量 while(i<10) scanf("%d",&a[i++]); //该数组从a[0]~a[9]共有9个元素,所以循环的条件应该小于10}注意点:①scanf后面要加取地址符
2022-01-07 18:05:05 3900 1
原创 C语言————鸡兔共有30只,脚共有90只,下面的程序段是计算鸡和兔共有多少只?
思路:本题就两个未知量,鸡和兔的数量。那我们分别设计和兔的数量为x和y。int x,y; //定义鸡和兔的数量此时,鸡的数量就等于30-xy=30-x; //总数30-鸡的数量,剩下的计算兔子的数量可以让循环的条件为鸡的数量for(x=0;x<=30;x++) //鸡的数量从0开始增加,最多可以有30只判断鸡和兔子对应的数量是否满足脚的总数就可以判断出总数30内共有多少只鸡和兔子(鸡有两只脚,兔子有三只脚)if(2*x+4*y==90) /.
2022-01-06 14:57:02 8560 4
原创 C语言————判断一个数是否为水仙花数
“水仙花数”:指一个三位数,其个位数字的立方和等于该数本身。(如:153=1*1*1+5*5*5+3*3*3)思路:①设四个变量,分别代表这个未知数n的个位数a,十位数b,百位数c。所以n=a*a*a+b*b*b+c*c*c②个位数a的表示方法就是n%10十位数b的表示方法就是n/10%10 百位数c的表示方法就是n/100看下面的程序吧!#include<stdio.h>void main( ){ int a,b,c,n; a=n%..
2022-01-06 09:11:29 14286 1
原创 C语言————求三个数中的最大值
思路:设四个变量a,b,c和max(最大值),如果a>b,就把a的值赋值给m,反之,则将b的值赋值给m;如果c>m,就把c赋值给m。#include<stdio.h>void main( ){ int a,b,c,max; scanf("%d%d%d",a,b,c); if(a>b) m=a; else m=b; if(c>m) m=c; printf("最大值为%d\n",m);}.
2022-01-05 15:32:12 608
原创 C语言————计算1-2+3-4+...+101
思路:①从1计算到101,所以变量i的初值是1,循环的条件是i小于等于101(或i<102);②偶数项前面都是做减法运算,在程序设计的时候我们可以用负号来看,所以设一个变量k=-k,每一次计算时都用i乘以k ;看下面的程序吧!#include<stdio.h>void main( ){ int i,sum=0,k=1; for(i=0;i<=101;i++) { sum+=k*i; //因为第一项是.
2022-01-05 15:11:44 2626
原创 C语言————以下程序段功能是输入学生成绩(满分100),90分以上(含90分)为优,80分~90分(含80分为良),60分~80分(含60分)为及格,其余不及格,设成绩为整数
思路:这个就适合用switch选择结构来设计了。直接看代码吧,这个比较简单,没有绕弯的地方,代码一看就明白了!#include<stdio.h>void main( ){ int score; scanf("%d",&score); switch(score/10) /*成绩/10可以去除个位数得到前面的位数,比如输入的成绩为98,98/10=9,就是优秀类别的*/ { case 10: .
2022-01-03 16:46:34 2532 3
原创 C语言————从键盘上输入若干个学生的成绩,统计出最高分和最低分,当输入负数时结束
思路:①题中谈到输入负数时结束,所以循环的条件就是输入的数需要大于零。可采用攻擂法求最值。②注意,需要两次连续输入成绩,最开始的时候输入成绩,循环比较大小完后再输入一下成绩;#include<stdio.h>void main (){ float x,max,min; scanf("%f",&x); //第一次输入成绩 max=min=x; //将输入的成绩分别赋值给min和max while(x>0) .
2022-01-03 16:18:49 11374 3
原创 C语言————输出It‘s a computer中的computer
思路:定义一个数组s[ ]="It's a computer",若想输出computer,只需找到c对应在数组中的位置然后按顺序输出即可。看下面的程序吧!#include<stdio.h>void main(){ char s[ ]="It is a computer"; int i,j; for(i=0;i<8;i++) //i从8开始的原因是,输出的computer共八位 { j=i+8; //s[8]对应co.
2022-01-03 15:44:07 1551
原创 C语言————以下函数fun的功能是返回字符串的之后一个字符
思路:①举个例子,比如一个字符串ABC\0,(此处把\0表示出来就是为了让大家更明白,平常'\0'是不需要表示出来的。)若想返回该字符串最后一个字符C,就应该让指针指p向结尾的'\0'处,再做减法往回走。所以在while的条件为指针p不等于'\0'时条件成立。且指针p应该一直向右移动,用p++来完成。②当p指到'\0'时,不满足while循环的条件退出循环。为了返回字符串的最后一个字符,下面用“p--或p-=1或--p”来使指针从'\0'指向字符串最末尾的字符C然后再返回即可。...
2021-12-31 15:23:20 876
原创 C语言————求一个正整数的各个位数之和
思路:①要求是正整数的各个位数之和,先设一个未知数n。求一个数的个位数方法是:n%10;求一个数的十位数的方法是:n/10%10;求一个数的百位方法是:n/100%10。由此我们可以发现,我们是从最低位(个位)开始求的,每次求一个数的个位数用n%10后,要向前一位求取这个位的数,所以n/10往前进一位,那么进两位就n/100,进三位就是n/1000以此类推。②控制循环的条件就是这个未知数n不为零就行了。#include<stdio.h>void main(){ i.
2021-12-31 11:16:08 39922 2
原创 C语言————有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,下面的程序统计卖完西瓜所需的天数
思路:①定义三个变量:“x1为西瓜总数”,“x2为剩余的西瓜数”,“day为卖完西瓜所需的天数”。②首先,思考循环的变量是西瓜的总数,它是控制西瓜卖完与否的唯一变量。③其次,剩余西瓜的数量受到西瓜总数的影响,题中“每天都卖出去西瓜数量的一半多两个”,也就相当于剩余的西瓜数目是西瓜数目的一半少两个。#include<stdio.h>void main(){ int day=0,x1=1020,x2; while(x1>0) { x2=.
2021-12-31 10:21:53 10942 7
原创 C语言————对数组中奇数进行求和
思路:奇数即:1,3,5,7,9,11等数,在C语言中表示方法有“i%2==1或i %2!=0”。#include<stdio.h>void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; //定义一个有十个元素的数组并进行初始化 int i,sum; for(i=0;i<10;i++) if(.
2021-12-31 10:00:44 5297
原创 C语言————二进制转十进制
<思路>把输入的二进制数按照从低到高的次序依次输出,且每一次都乘以相应的位权//(所谓位权,数中每一固定位置对应的单位值称为位权。例如十进制第一位位权为0,第2位的位权为10,第3位的位权为100;而二进制第一位位权为0,第2位的位权为2,第3位的位权为4,第四位位权为8;对于 N进数,整数部分第 i位的位权为N^(i-1),而小数部分第j位的位权为N^-j。 )举个例子:【将二进制数1101转化成十进制数】1101=1*2的零次幂+0*2的一次幂+1*2的二次幂+1*2的三次
2021-12-28 17:15:51 23657 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人