字符串的输入与输出:(字符串与字符数组相互联系)
Char name[80]; char address[80];
Gets(name); gets(address);{输入字符串}
Puts(name);puts(address);{输出字符串} 注意红字之间的区别
指针的目的是存储主函数中数据的地址,然后传到次函数中进行运算
指针的偏移:int *p+=9;(偏移9个int类型的字节,即36个字节)
Int类型为4个字节,double类型为8个字节,char类型为1个字节
‘*’的作用:1.取地址。2.取内容(形参可以改变实参)
Stadic int a; 静态变量(申请变量失败)
{ i=10; stadic int i=9; 最终i=10; 因为i=10时到stadic i=9申请变量失败}
Int 整数
Double 小数
Printf 电脑中会显示的提示
Scanf 自己输入的答案形式
Fabs(x) 绝对值x
Sqrt(x) 根号下X
Pow(x底,n指数) 幂函数 eg:pow(1+factory,day)
Exp(x) 指数函数
Log(x) 以e为底的对数函数
Log10(x) 以10为底的对数函数
& 取缔指符 eg:用3表示word (3,&word);
Const double PI=3.1415926 定量
If {} 如果
Else{} 否则 用于分段函数
&& 并且
|| 或者
向右对齐:%5d 向左对齐:%-5d
For循环:for(i=1;i<=n;i++)
{公式}
While循环:while(公式2)
{公式}
Do{
公式
}while(公式);
计算符号 char a;
Scanf(“%c”);if(a==‘+’)
Scanf(“%c”,&a)
Switch(a) (如果是数字就不需要’ ‘)
{
Case ‘+’:result=b+c;
Break;
Case ‘-‘:result=b-c;
Break;
(否则) Default:
} (当玩家输入3+2时,则会进入第一个case,并在第一个break中截至。但玩家输入3-2时,就会直接进入第二个csae,并在第二个break出截至。其中break相当于return 0.)
Continue 该段结束 break全部结束
随机数 rand()%100+1 (0到100的随机数)
. rang()%4 (0到3的随机数)
嵌套循环
For(i=1;i<=4;i++)
{
符号:换行 \n
回车 \r
for(i=0;i<c;i++){
printf("%c ",'A'+i); {输出内容为A,B,C,D……}
字符串的交换:#include<string.h>
Char a[10]=”abed”,b[10]=”efg”,t[10];
Strcpy(t,a);//a复制给t
Strvpy(a,b);//b复制给a
Strcpy(b,t);//t复制给b
输入字符的两种方式
Ch = getchar()
或者
Scanf(“%c”,&ch)
输出字符的两种方式
Putchar(ch)
或者
Printf(“%c”,ch)
求素数:
If(n<=1) printf
Else if(n==2) printf
Else
{n=sqrt(n)+1;
For(i=2;i<=n;i++;
{if(n%i==0)
Printf:0}
Printf:1}
暂停功能:system(“pause”);
清屏功能:system(“cls”);
头文件:stdlib.h
求余:% 8%4=0 9%4=1
输入字符串 char a[90];
输出字符串 %s
数字数组:int a[10]
Int a[10][2] 表示10行2列
字符数组: char str[3];
输出 for(i=0;str[i]!=’\0’;i++) =’\0’;i++)=’\0’;i++) printf(“%c”,str[i])
{putchar(“str[i]”);}
输入 getchar() scanf(“%c”,str[i])
八进制: \021 (0~7)
十六进制: \x24
结构(位于主函数前面)
Struct point(结构名)
{
Double x;
Int y;
} s1,s2;
Scanf(“%s”)输入一连串英文字母
将数字从小到大排序:(外层循环表示排列多少次,i=1是因为最小的数最后不需要排列
J<n-i是因为每次排列完最后一个数就已经为最大值,则不需要排列(冒泡排序)
(选择排序)从小到大
For(i=0;i<n;i++)
{
For(j=i+1;j<n;j++)
{
If(a[i]>a[j])
{
Temp=a[i];
A[i]=a[j];
A[j]=a[i];
}
}
}
字符串转换为十进制的数字:eg:“12”==》12
(‘1’-‘0’)*10+(‘2’-‘0’)
转换为十六进制的数字:eg:“12”==》
(‘1’-‘0’)*16+(‘2’-‘0’)
补充:getchar形式只能输入一个字符,而gets形式可以输入一个字符串。
Char a; a=getchar; char a[80]; gets(a);
Putchar(a); puts(a);
函数:
函数的基本形式:
返回值类型 函数名( )
{
}
函数的两种书写形式:
1.
#include<stdio.h>
#include<math.h>
void one();
int main(void)
{
one();
return 0;
}
void one()
{
printf("请选择你所需要的功能\n");
printf("1.信息录入。\n");
printf("2.信息浏览。\n");
printf("3.信息查询。\n");
}
2. #include<stdio.h>
#include<math.h>
(这里没有void one();)
void one() {这里要写在前面}
{
printf("请选择你所需要的功能\n");
printf("1.信息录入。\n");
printf("2.信息浏览。\n");
printf("3.信息查询。\n");
}
int main(void)
{
one();
return 0;
}
结构
计算机中的错误点:
基本形式:#include<stdio.h>
#include<math.h>
Main()
{
Scranf(“ “)
}
Scanf语句中为double形式的用%lf表示
Scanf语句中为int形式的用%d表示
Scanf中没有%,2lf这种形式,因为不能控制用户的输入数据,而printf中则有这种形式
除结尾外,printf中都要输入\n
每一个句子都要有一个printf
Scanf中一定要有&,否则答案为0
Printf(“%d=%d*%d”,a,b,c) 其中a代表第一个%d,b代表第二个%d,c代表第三个%d
(48%10) 去掉十位上的数 4 得48%10=8
(48/10) 去掉个位上的数 8 得48/10=4
如果多个数相加,且加减号交替改变,用:flag=-flag
格式:12:02:00 “%02d: %02d:%02d”
字符串输入用%s,后面变量用数组名就行了,不需要&:
long long birthday;
scanf("%s%lld%s",s[i].name,&s[i].birthday,s[i].number);
%02d表示输出的数如果不满足2位数,就在左侧不0
%.2lf表示保留2位小数
for(fahr=lower;fahr<=upper;fahr=fahr+2)不能写出for(fahr=lower;fahr<=upper;fahr+2)
回车键也算一个字符
函数传入数组:
Int a[10];
Int fun(b[ ],10)
函数的递归:函数自身调用自身
Eg: void fun()
{ printf(“111”); fun( )};