//最大公约数、最小公倍数
#include “stdio.h”
void main()
{
int m,n,min,i,max;
scanf("%d%d",&m,&n);
//min=(m>n)?n:m;
/min=m;
if(m>n)
{
min=n;
}
for(i=min;i>=1;i–)
{
if(m%i0&&n%i0)
{
break;
}
}/
/for(i=m;i>=1;i–)
{
if(m%i0&&n%i0)
{
break;
}
}/
max=m>n?m:n;
for(i=max;;i++)
{
if(i%m0&&i%n0)
{
break;
}
}
printf("%d",i);
}
//求1000之内的完数
/* Note:Your choice is C IDE */
#include “stdio.h”
void main()
{
int x,sum,i,t;
for(x=1;x<=1000;x++)
{
sum=0;
for(i=1;i<x;i++)
{
if(x%i==0)
{
sum+=i;
}
}
if(x==sum)
{
printf("%d its factors are ",x);
t=0;
for(i=1;i<x;i++)
{
if(x%i==0)
{
t++;
if(t==1)
{
printf("%d",i);
}else
{
printf(",%d",i);
}
}
}
printf("\n");
}
}
}
//从键盘输入一个数,判断它是几位数,并按逆序输出各个位数字
#include “stdio.h”
void main()
{
int x,t,a,i=0;
scanf("%d",&x);
t=x;
while(t>0)
{
a=t%10;
printf("%d ",a);
t=t/10;
i++;
}
printf("\n%d is %d 位数",x,i);
}
数组–批量数据–循环
1、定义
类型 数组名[常量]
说明:类型是任意合法的类型,数组存放元素的类型
数组名,合法的标识符
常量代表数组中存放元素的个数
注意:
1)数组元素在内存中连续存放
2)数组名代表数组的首地址,是一个地址常量
例如 存放班级学生的c语言的成绩
int score[38];
2、数组元素的引用
语法: 数组名[下标]
下标,是一个整数,从0开始,一直到数组大小减一
通常会利用循环对数组进行整体引用
int score[38];
score[0],score[1]…scroe[37]
#include “stdio.h”
void main()
{
int a[5],i;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
}
3、数组元素的初始化(定义的同时赋值)
int a[5]={1,2,3,4,5}//数组元素的初始化,可以给所有的元素赋值,也可以给部分元素赋值
int a[5]={1,2};
int a[5];//数组的定义
a[5]={1,2,3,4,5};//错误,a[5]引用了下标为5的数组元素,实际下标不能取5
a={1,2,3};//错误,数组名代表数组首地址,是一个常量
定义数组之后,再赋值,只能一个一个赋值
int a[5];
a[0]=1;
a[1]=2;
//从键盘输入一个数,统计在数组中出现的次数
#include “stdio.h”
void main()
{
int a[10]={9,4,65,67,7,2,4};
int t=0;
int i;
int x;
scanf("%d",&x);
for(i=0;i<10;i++)
{
if(x==a[i])
{
t++;
}
}
printf("%d chuxian le %d ci",x,t);
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
printf("over");
}
//数组元素的更新update
#include “stdio.h”
void main()
{
int a[10]={9,4,65,67,7,2,4};
int i;
int x,y;
int flag=0;//标志变量,表示没有找到x的情况
scanf("%d%d",&x,&y);
for(i=0;i<10;i++)
{
if(x==a[i])
{
a[i]=y;
flag=1;
}
}
if(flag==0)
{
printf("not found");
}
else
{
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
}
printf("over");
}
#include “stdio.h”
void main()
{
int a[10]={9,4,65,4,7,2,4};
int i,j;
int x;
int size=7;//当前数组中元素的个数,根据删除情况,时时变化
int flag=0;//标志变量,表示没有找到x的情况
scanf("%d",&x);
for(i=0;i<size;i++)
{
if(x==a[i])
{
for(j=i;j<size-1;j++)
{
a[j]=a[j+1];
}
/*for(;i<size-1;i++)
{
a[i]=a[i+1];
}*/
size--;//每删除一个元素,数组元素个数减一
}
}
for(i=0;i<size;i++)
{
printf("%d ",a[i]);
}
}
二维数组
1、定义
类型 数组名[常量1][常量2]
说明:类型
数组名
常量1,行的数量
常量2,列的数量
int a[4][5];
二维数组元素的存放:
连续存放;按行存放,存放第0行,然后再存放第1行…
2、引用
数组名[行标][列标]
行标从0开始,到行数减一
列标从0开始,到列标减一
对二维数组的遍历,通常采用双重for循环,外层控制行,内层控制列
3、初始化(定义的同时赋值)
int a[4][5]={{1,2,3,4,5},{2,4,6},{8,10}};
int a[3][3];
a={2,34,3,45,6}错误
a[3][3]={3,2,4,5,7}; 错误
a[0][1]=4; 正确,定义之后再赋值,只能逐个元素赋值