重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
目前成都创新互联公司已为上千余家的企业提供了网站建设、域名、虚拟空间、网站托管维护、企业网站设计、乐至网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
int Common(int m,int n) //求最大公约数
{
int t = m%n;
while(t) //欧几里得算法求最大公约数
{
m = n;
n = t;
t = m%n;
}
return n;
}
int Common1(int m,int n) //求最小公倍数
{
return m*n/Common(m,n);
}
int main()
{
int m,n;
printf("请输入两个整数\n");
scanf("%d%d",m,n);
printf("最大公约数为:%d\n",Common(m,n));
printf("最小公倍数为:%d\n",Common1(m,n));
return 0;
}
定义和声明可以分开的。先声明两个函数,然后再后面再写函数体就可以了。比如
void A();
void B();
void A()
{
B();
return;
}
void B()
{
A();
return;
}
首先我们先点开C-Free5.0然后新建一个你猜.c的空白页面,输入基本语句。然后保存。
然后我们要解决的问题是如何生成一个随即数值。
#includestdio.h
#includestdlib.h //为了获得随机数
#includetime.h //获取时间
main()
{
int a,b;
srand(time(NULL));
a=1+(rand()%100);//获得一个100以内的随机数
printf("%d",a);
}
rand()是“伪随机数”产生函数,注意,是“伪随机数”而不是“随机数”,如果每次srand()给的参数值相同,那么rand()产生的序列就是相同的。time(NULL)返回的是从某年的1月1日0时0分0秒开始到系统当前时间所经过的秒数,所以如果不是同一秒钟以内多次运行程序的话,time(NULL)的返回值一定是不同的,用这样的方式来产生相对比较随机的序列。
第三步自然是,开始猜的过程,我们这里用的是while 循环 然后用if语句判断是否正确,如果正确就用break;跳出循环。当然为了严重能不能退出,我们还要作弊下,先看到a的值,我们需要输出下a的值在while循环之前。
while(a)
{
printf("请输入你心中想的那个数: ");
scanf("%d",b);
if(a==b)
break; }
printf("恭喜你猜对了!\n");
好,上面的程序基本功能能用,但是程序整体不是很美观,缺少提示语句,所以我们加上提示语句。
if(ba)
printf("你输入的数值太大。\n");
if(ba)
printf("你输入的数值太小。\n");
这部分代码用if语句来实现。
好了我们现在将完整的代码写一边然后进行调试下代码是否如我们所想的那样。
#includestdio.h
#includestdlib.h //为了获得随机数
#includetime.h //获取时间
main()
{
int a,b;
srand(time(NULL));
a=1+(rand()%100);//获得一个100以内的随机数
while(a)
{
printf("请输入你心中想的那个数: ");
scanf("%d",b);
if(a==b)
{
printf("恭喜你猜对了!\n");
break; }
if(ba)
printf("你输入的数值太大。\n");
if(ba)
printf("你输入的数值太小。\n");
}
getch();
}
6
好的如上图我们可以看到我们的程序很完美,然后编译后会出现一个exe的程序,这个程序就是我们的小猜数字游戏,但是我们发现每次等我们猜对后后,就会闪退,我们在程序里面写一个 getch();放在最后没就好了,再重新编译下。
在Win32程序中,可以使用多线程来实现,但是那个比较复杂,不太容易在短时间内掌握。
#include stdio.h
int is(int number);
int main(void)
{ int m,n,i;
printf("m(=1)=");
scanf("%d",m);
printf("n(=1000)=");
scanf("%d",n);
for(i=m;i=n;i++)
if(is(i)) printf("%-5d",i);
printf("\n");
}
int is(int number)
{ int s=0,x,a;
if(number==0) return 1;
for(x=number;x!=0;x/=10)
{ a=x%10;
s+=a*a*a;
}
return s==number;
}