##最大公约数
{ //是求最大公约数的经典方法,具体步骤如下:
//1. 将两个数中较大的数除以较小的数,得到商和余数;
//2. 将较小的数和余数再次做除法,得到商和余数;
//3. 重复上述过程,直到余数为0,此时较小的数就是最大公约数。辗转相除法简单易懂,但对于较大的数来说,计算次数较多
//例如,求(319,377):
//∵ 319÷377=0(余319)
//∴(319,377)=(377,319);
//∵ 377÷319=1(余58)
//∴(377,319)=(319,58);
//∵ 319÷58=5(余29)
//∴ (319,58)=(58,29);
//∵ 58÷29=2(余0)
//∴ (58,29)= 29;//
//∴ (319,377)=29。//
#include <stdio.h>
int main()
int a,b,min,max,res;
scanf("%d %d",&a,&b);
if(a>b)
{
min=b;
max=a;
}
else
{ min=a;
max=b;
}
res=1;
while (res!=0) {
res=max%min;
if(res!=0)
{ max=min;
min=res;
}
}
printf("最大公约数为 %d",min);
return 0;
}
##1~100含有9的数字个数有
#include <stdio.h>
int main()
{ int i;//个位上%10==9 十位上/10==9
int a=0;
printf("含有9的数字有:");
for(i=1;i<=100;i++)
{
if(i%10==9||i/10==9)
{
printf("%d ",i);
a++;
}
}
printf("含有9的数字个数有:%d",a);
return 0;
}
乘法表格
#include <stdio.h>
int main()
{ int m,n;//行和列
for(m=1;m<=9;m++)
{
for(n=1;n<=m;n++)
{
printf("%d * %d= %d ",m,n,(m*n));
if(n==m)
{
printf("\n");
}
}
}
return 0;
}
猜数字游戏
随机数的生成
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
srand((unsigned)time(NULL));
int n=rand()%100;//利用余数来控制范围
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{ //猜数字游戏
//随机数的生成
srand((unsigned)time(NULL));
int n=rand()%100;//利用余数来控制范围
int a,b;
printf("请输入一个数范围在0~99:");
scanf("%d",&a);
while(a!=n)
{
if(a>n)
printf("猜大了\n");
if(a<n)
printf("猜小了\n");
printf("请再输入一个数:");
scanf("%d",&a);
}
printf("good!");
return 0;
}
二分查找有序数组
// int mid =left+(right-left)/2;防止溢出
#include <stdio.h>
int main()
{ //二分查找有序
int a[10]={1,2,3,4,5,6,7,8,9,10};
int b;
int i=0;
printf("你想找哪个数字:");
scanf("%d",&b);
int sz =sizeof(a)/sizeof(a[0]);
int right=sz-1;
int left=0;
while (right>=left)
{
//int mid =(right+left)/2;
int mid =left+(right-left)/2;防止溢出
if (a[mid]>b)
{
right=mid-1;
}
else if (a[mid]<b)
{
left=mid+1;
}
else
{
printf("i find it ,it was num.%d",mid+1);
break;
}
}
if (left>right) {
printf("sir ,i cant find it");
}
return 0;
}
文章介绍了几种编程中的基本算法,如求最大公约数的辗转相除法,检查1~100中含有9的数字数量,生成乘法表格,猜数字游戏以及二分查找有序数组的实现。
263

被折叠的 条评论
为什么被折叠?



