c语言初学必背代码文档格式.docx
《c语言初学必背代码文档格式.docx》由会员分享,可在线阅读,更多相关《c语言初学必背代码文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
i<
=100;
i++)
sum=sum+i;
sum=%d\n"
sum);
//3.最大公约数
//求m,n的最大公约数
intm,n;
inti,k;
请输入两个数:
"
%d%d"
m,&
n);
//三元运算符找较小的那个
k=m<
n?
m:
n;
//从较小的那个数倒着往前找
for(i=k;
i>
=1;
i--)
//这是公约数
if((m%i==0)&
(n%i==0))
{
printf("
最大公约数是%d\n"
i);
break;
//跳出for循环
}
//4.最小公倍数
//求m,n的最小公倍数
intmax,min;
//m,n中较大,较小的那个
intk;
//max,2*max,3*max,.....
//也可以交换m,n,保证m小n大
max=m>
min=m<
k=max;
//从max开始
while(k%min!
=0)
k+=max;
//每次倍增
最小公倍数是%d\n"
k);
//5.金字塔
//金字塔
//外层
intj;
//内层
i<
=10;
//当前是在第i行
//先补空格10-i个
for(j=1;
j<
=10-i;
j++)
//再打2i-1个*
=2*i-1;
*"
//6.九九乘法表
//打印九九乘法表
inti,j;
=9;
i++)//外层一定是9行
j<
=i;
j++)//内层第几行走几遍
%d*%d=%d"
i,j,i*j);
//7.百钱买百鸡
/**
百钱买百鸡,类似1,2,5凑100银币问题
*/
intmain2()
//公鸡,母鸡个数
for(i=0;
i<
=20;
i++)//公鸡
for(j=0;
=33;
j++)//母鸡
if((15*i+9*j+(100-i-j))==300)
{
printf("
公鸡%d,母鸡%d,小鸡%d\n"
i,j,100-i-j);
}
//1,2,5凑100银币问题
intmain3()
intcount=0;
//情况数
//5分个数,2分个数
i++)//5分个数
=50;
j++)//2分个数
if((5*i+2*j)<
=100)
count++;
%d:
5分%d个,2分%d个,1分%d个\n"
count,i,j,100-5*i-2*j);
//8.一维数组的最大值、最小值、平均值
#defineN10//宏定义常量
//下标索引
doublesum=0;
//累加和
inta[N]={58,58,96,100,25,55,66,88,99,77};
max=a[0];
//假设第一个最大
min=a[0];
//假设第一个最小
N;
i++)
if(a[i]>
max)//比最大值还大
max=a[i];
//你才是最大
if(a[i]<
min)//比最小值还小
min=a[i];
//你才是最小
sum+=a[i];
max=%d,min=%d\n"
max,min);
average=%.2lf\n"
sum/N);
//9.二维数组的最大值、最小值、平均值
//第几行
//第几列
inta[3][4]={{1,2,3,4},{5,-6,7,8},{9,19,39,0}};
intmax=a[0][0];
//假设你最大
intmin=a[0][0];
//假设你最小
doubleaverage;
//平均值
//总和
3;
i++)//必定3行
4;
j++)//必定4列
%5d"
a[i][j]);
sum+=a[i][j];
if(a[i][j]>
max)
max=a[i][j];
if(a[i][j]<
min)
min=a[i][j];
average=sum/(3*4);
max=%d,min=%d,avg=%.2lf\n"
max,min,average);
//10.二维数组转置
//二维数组转置:
行变列,列变行
intb[4][3];
j++)
%5d"
//矩阵转置
b[j][i]=a[i][j];
}
b[i][j]);
//11.冒泡排序
//下标索引
inttmp;
//临时交换用
//外层循环一定是N-1
N-1;
//两两交换,大的往后走
N-i-1;
//交换
if(a[j]>
a[j+1])
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
%d"
a[i]);
;
//12.结构冒泡排序
//结构定义,用户自定义类型
typedefstructstudent{
charsno[20];
//学号
charname[20];
//姓名
intage;
//年龄
chargender;
//性别
chartel[20];
//电话
};
structstudenttmp;
//两两交换临时用;
//结构数组
structstudentteam[5];
5;
请输入第%d个队员的信息:
i+1);
scanf("
%s%s%d%c%s"
team[i].sno,team[i].name,&
team[i].age,&
team[i].gender,team[i].tel);
//按年龄冒泡排序
5-i-1;
//两两交换
if(team[j].age>
team[j+1].age)
tmp=team[j];
team[j]=team[j+1];
team[j+1]=tmp;
//取值
%-12s%-10s%-5s%-5s%-15s\n"
"
学号"
姓名"
年龄"
性别"
电话"
%-12s%-10s%-5d%-5c%-15s\n"
team[i].sno,team[i].name,team[i].age,team[i].gender,team[i].tel);
//13.结构数组找年龄最大值
//找最大临时用
for(i=0;
//找学号最大的那一个
tmp=team[0];
if(strcmp(team[i].sno,tmp.sno)>
0)
tmp=team[i];
学号最大的队员如下:
tmp.sno,tmp.name,tmp.age,tmp.gender,tmp.tel);
//14.文件读写
stdlib.h>
//文件读写
{
structstudent*s,*p1;
//个数未知
FILE*fp;
inti,n=0;
charbuf[1024];
//fgets缓冲区
//打开文件
fp=fopen("
e:
\\test.txt"
r"
while(fgets(buf,1024,fp)!
=NULL)
n++;
fclose(fp);
//指向一个可以存储n个student结构的内存空间
s=(structstudent*)malloc(sizeof(structstudent)*n);
p1=s;
//不要动头位置s的值
n;
//从文件中读入一行
fscanf(fp,"
p1->
sno,p1->
name,&
p1->
age,&
gender,p1->
tel);
p1++;
%s%s%d%c%s\n"
name,p1->
age,p1->
free(s);
//15.输入三角形三边长计算周长和面积
#include<
math.h>
intmain()
doublearea,perimeter,s,a,b,c;
请输入三边长abc:
%lf%lf%lf"
&
a,&
b,&
c);
if((a+b>
c)&
(a+c>
b)&
(b+c>
a))
{
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
area=%.2f,perimeter=%.2f\n"
area,perimeter);
三边长无法构成三角形。
return0;
//16.输入年份和月份输出对应那一月的天数,要处理闰年
#include
intyear,month;
intleap=0;
year,&
month);
if((year%4==0&
year%100!
=0)||year%400==0)//闰年2月29天
leap=1;
switch(month)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
printf("
31"
break;
case4:
case6:
case9:
case11:
30"
case2:
28+leap);
default:
error"
//17.1,2,5分硬币问题
for(inti=0;
i++)//5分
for(intj=0;
j++)//2分
if(5*i+2*j<
=100)
sum++;
else
break;
%d\n"
//18.100到200所有的素数
inti,j,n;
for(i=100;
=200;
n=i;
//内层
for(j=2;
=n-1;
if(n%j==0)
//不是素数
if(j==n)//没找到
%d是素数\n"
n);
else
%d不是素数\n"
//19.输入一个数n,计算12+22+32+…+n2
k);
i=1;
while(i<
=k)
sum=sum+i*i;
i++;
sum=%d\n"
//20.指针交换
//定义一个方法swap()通过指针交换两个整数,并在main()中调用
voidswap(int*pa,int*pb)
inttmp=*pa;
*pa=*pb;
*pb=tmp;
inta=3;
intb=5;
int*pa=&
a;
int*pb=&
b;
swap(pa,pb);
a=%d,b=%d\n"
a,b);