- 博客(29)
- 收藏
- 关注
原创 【C语言程序设计】通过3个坐标判断三角形是否成立,如果成立求出其面积和周长
输入三个坐标,判断是否能构成三角形,如果能计算出相应的周长和面积。(使用数组)
2022-11-14 14:17:24
2836
原创 一行代码让c语言完成两个变量的值交换
a^ =b ^ =a^=b;这就是简单的异或运算。#include<stdio.h>int main(){int a=1,b=3;a=b=a^=b;printf(“a=%d,b=%d”,a,b);return 0;}不需要中间值,简单又方便,在我们写变量很多的代码时非常有用,这也就告诉我们要灵活运用c语言中的各种运算
2022-11-12 10:43:48
436
原创 如何在c语言中,输入和输出字符串(简单函数)。
第一种:gets()可以输入输出任意的字符串包括汉字。#include<stdio.h>int main(){char a[30];//定义的数组,数组大小不影响程序。gets(a);//输入字符串puts(a);//输出字符串return 0;}第二种:getchar()输入输出字符(单个字符)#include<stdio.h>int main(){char a;a=getchar();putchar(a);return 0;}
2022-11-11 23:53:58
4077
原创 【迭代发算法、递推算法、穷举算法和贪心算法】
C语言常用的算法:1:迭代法:迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。1) 平方根公式:关键算法:x0=n/2,x1+1/2*(x0+a/x0);代码:#include<stdio.h>#include<math.h>int main(){double a,x0,x1;printf(“请输入a(a>0)的值:\n”);scanf("%lf",&a);if(a<0
2022-11-11 20:23:14
859
原创 从n到m的素数和
1<=n<=m<=500,求从n到m所有素数的和#include<stdio.h>int main(){int i,j,m,n,t,sum=0;scanf("%d,%d",&n,&m);for(i=3;i<=m;i++){ // 已知2是素数,为了方便,从3到m,找出所有的素数for(j=2;j<i;j++){if(i%j0){ //循环从2到i-1求余,寻找是否n有其他因数(素数判断)t=0;break; //如果有则不
2022-11-10 00:17:36
208
原创 高精度小数,2(中国大学mooc)
今天我发现中国大学的高精度小数的题目其实还有一点轻松的地方,就是他并不会让你考虑,整数部分不为0的情况,也就是被除数大于余数,所以:#include<stdio.h>int main(){int a,b,c,n=0,i=0;int sum[205]={0};scanf("%d/%d",&a,&b);c=a;sum[0]=a/b;printf("%d",sum[0]);if(c*10%b!=0){sum[1]=’.’;printf("%c",sum[1]);
2022-11-09 17:41:21
115
原创 【提取数字】
#include<stdio.h>#define MAXLINE10intmain(void){int i,number;charstr[MAXLINE];/输入字符串/printf(“Enter astring:”);i=0;while((str[i]=getchar())!=’\n ‘){i++;}str[i]=’\0’;/逐个判断是否为数字字符,并进行转换/number=0;for(i=0;str[i]!=’\0’;i++){if(str[i]>=‘0’&
2022-11-08 15:42:21
125
原创 在函数调用下,进一步理解指针的“强势“
我们先用一段有指针和函数调用参与的交换值的代码进入思考:/通过函数调用来交换变量值的示例程序/#include<stdio.h>void swap1(int x,int y), swap2(int *px,int *py), swap3(int *px,int *py);//函数定义 ,注意swap2和swap3是指针int main(void){int a=1,b=2;int *pa=&a,*pb=&b;swap1(a,b); /使用变量a,b调
2022-11-07 23:55:43
94
原创 【订正版辗转相除法】十分抱歉,这是修改后的正确代码
#include<stdio.h>int main(){int a,b,c,m,n,t;printf(“请输入m,n:”);scanf("%d,%d",&m,&n);if(m>n){ //保证在程序运算时,a始终大于ba=m;b=n;} else{a=n;b=m;}do{c=a%b;a=b;t=b;//计算到最后,除数就是我们所求的最大公因数,使用t,方便输出b=c;}while(c!=0);//根据辗转相除原理,在第一次计
2022-11-07 15:28:21
191
原创 【无标题】辗转相除法
#include<stdio.h>int main(){int a,b,c;int i;scanf("%d,%d",&a,&b);for(i=0;i<a;i++){ if(a>b){ c=a%b; a=b; b=c; printf("%d",a); }else{ c=b%a; b=a; a=c; printf("%d",b); } if(a==0||
2022-11-07 07:17:50
101
1
原创 【高精度小数】中国大学(第六周编程练习)
输入格式:形如a/b 的两个数,其中10<=a<b<100。也就是说,这个小数一定是小于1的正数。提示:输入是带着两个数中间的“/”的,所以scanf应采用“%d/%d”这样的输入格式。输出格式:形如 0.xxxxxxxxx 的小数,小数点后最多200位。输出结束的时候要带着回车换行。如果a/b是一个有限不循环小数,则输出完所有的有效位就可以了,不需要再输出后面的0来凑满200位。输入样例:16/19输出样例: 0.842105
2022-11-06 22:15:14
143
原创 【选择法排序(数组)】
/*选择法排序*/#include<stdlo.h>#define MAXN 10/*定义符号常量MAXN*/int main(vold){int i,index,k,n,temp;int a[MAXN];printf("Enter n:"); /提示输入n个数*/scanf("%d",&n);printf("Enter %d integers:",n);for(i=0;i<n;i++){ scanf("%d”
2022-11-06 00:35:42
153
原创 关于c语言注释的有趣问题:
我们都知道C语言中的注释都不会被程序读取,那么程序会怎样处理它们的呢?这里有两种说法:一种是:9.预处理指令预处理器在编译程序编译代码之前对其进行处理。①将所有以反斜线\’结尾的行与后面一行合并为同一行。②将程序分解为记号流。③删除所有的注释,并用单个空格替换它们。④处理预处理指令并展开所有的宏。所有的预处理指令都必须以#开始,在#后可以有一个或者多个空格和tab字符。------引自《C语言程序设计》(第四版)第341页第二种:在把代码翻译成汇编代码前,还有
2022-11-05 23:29:26
196
原创 【一个while()的有趣问题】
while(!e)中,!e等价于: e==0while循环的条件默认是:括号中条件为真(即不为0),所以!e应该代表是不为假(0),即等价于e==0。
2022-11-05 23:11:25
561
1
原创 【有关C语言进制转化和输出小知识】
整数常量基础知识:①第一个数字以0开始,常被看作八进制。 0174=4×8⁰+7×8¹+1×8²=124(+进制)②开头以0X开始的,常被看作十六进制。 0×124→4×16⁰+2×16¹+1×16²=292(十进制)③如果数字右下角是(2),常被看作二进制。 11=1×2⁰+1×2¹=3(十进制)④十进制转化为二进制: 利用竖式算法,将十进制数每次除2,记下余数,直到商为0,然后从后向前,写出余数。 C语言与整数常量:
2022-11-05 23:05:39
297
原创 在c语言中的一个有意思代码,查看自己所能申请的最大内存
include<stdio.h>#include<stdlib.h>int main(void){void*p;int cnt=0;while((p=malloc(1001024*1024))){cnt++;}printf("分配了%d00MB的空间\n",cnt);return 0;(1)malloc全称是memory allocation,中文叫动态内存分布,用于申请一块连续的指定大小的内存块区域以void类型返回分配的内存区域地址,当
2022-11-03 00:06:04
530
原创 【c语言】按位与、按位或、按位异或。
(1)按位与(&):相同的保留,不同的取0; 0101 0101 0011 1101 —————— 0001 0101(2)按位或(|):相同保留,不同取1; 0101 0100 0011 1011 —————— 0111 1111(3)按位异或(^):相同取0,不同取1; 0011 1101 0101 1011 —————— 0110 0110按位异或的特殊用法:a
2022-11-01 22:17:47
5596
原创 c语言,仅使用循环,计算平均成绩。
输入格式:输入首先在第一行中给出一个正整数 N(≤10000),即全校学生人数。最后 N 行,每行按照格式性别 成绩给出一位学生的信息。其中性别为 1 表示男生,0 表示女生;成绩是一个 0 到 100 之间的整数。输出格式:在一行中依次输出全班的平均成绩、男生的平均成绩、女生的平均成绩。输出小数点后1位,数字间有一个空格分隔。注意:如果全是男生或全是女生,则缺少的性别就没有办法计算平均分,相应的位置应该输出一个X表示。输入样例 1:51 970 910 98
2022-11-01 16:54:10
2976
原创 c语言,for(表达式1;;表达3)的等价理解
应该是:for(表达式1;1;表达式3)c语言中,for语句是循环语句:for(表达式1;表达式2;表达式3)表达式1是初值表达式表达式2是条件表达式表达式3是步长表达式对于循环而言,表达式2才是关键,而且表达式1和表达式3并不是很重要,在严格意义上是可以空的。而表达式2对于计算机而言,相当于1或0,即真或假。如果是0,程序没法保证循环,所以应该是1。
2022-11-01 16:42:57
3714
1
原创 c语言,计算a+aa+aaa+......,使用函数定义的方法
#include<stdio.h>int fn(int a,int n);int main(void){ int a,n,sum=0,i,t; printf("请输入:"); scanf("%d,%d",&a,&n);//输入模式:a,n sum+=fn(a,n); printf("%d",sum); return 0;}int fn(int a,int n){ int cnt=0,i,t;
2022-10-31 15:54:35
1409
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人