各位同好,作为一名C语言学习小白,在经过了一个学期的学习后我拿到了满分的期末成绩,现分享给大家自认为宝贵的笔记。
开始写一些C语言的笔记
- 取位数
个位:n%10
十位:n/10%10
百位:n/100%10
- 冒泡排序
for(i=1;i<=n-1;i++)
for(j=0;j<n-i;j++)
if(a[j]<a[j+1])
{ t=a[j+1];
a[j+1]=a[j];
a[j]=t;}
第一行表示比较的轮数,第一轮开始一直到有n个数字所以要减去一个1,因为最后一个会自然落下不需要比较。
第二行表示开始比较了,此时j代表的数组里面的偏移量。从0开始,一直到n,但是此时其实是已经有i个值确定了,所以不需要比较。
- 阿斯克码的转换(48,32,
要想将字符里面的数字转化为整数,或者说是纯数字,需要减去48
int fun(char *p)
{
int i,n=0;
for(i=0;p[i]!='\0';i++)
{
n=n*10+p[i]-48;
}
return n;
}
字符里面大小写的转换是大写字母加上32等于小写字母 大写转小写,小写转大写
if(n>='a'&&n<='z')
n=n-32;
else if(n>='A'&&n<='Z')
n=n+32;
还有一个要点
N-‘a’; 也可以表示为一个字符
char n;
scanf("%c",&n);
if(n<='z'&&n>='a')
n=(n-'a'+3)%26+'a';
//这也就是偏移量的一个思路!!!,即相对于初始地’a’的偏移量!!
else if(n>='Z'&&n<="A")
n=(n-'A'+3)%26+'A';
认为字符串只能放在字符数组里面,一个一个放进去
想要输出字符串
Char a[10]
scanf(“%s”,a )//这样就可以直接不用循环
printf(“%s”,a)
- 数组 指针
在处理完数组后记得加上一个a[]=‘\0’这个十分容易遗漏
数组与指针十分类似都是地址
- 素数
for(i=2;i<=sqrt(n);i++)
for(I=2;i<n;i++)
#include <stdio.h>
#include <math.h>
void main()
{
int n;
int f(int n);
scanf("%d",&n);
while(f(n+1)==0)
{ n++;}
printf("%d",n+1);
}
int f(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)
return 0;
return 1;
}
- 回文数
记住要先拿一个杯子出来装一下n(初始的数值)
#include <stdio.h>
#include <math.h>
void main()
{
int n,t;
int f(int n);
scanf("%d",&n);
t=n;
if(f(n)==t)
printf("yes");
else
printf("no");
}
int f(int n)
{
int a=0,m;
while (n!=0)
{
m=n%10;
a=10*a+m;
n=n/10;
}
return a;
}
#include<stdio.h>
void main()
{
int i,j,n,m,t;
for(i=1000;i<10000;i++)
{
m=0;
t
标签:10,return,int,32,笔记,C语言,printf,include From: https://blog.csdn.net/2301_80833071/article/details/140749650