习题7 1-4题

来源:互联网 发布:淘宝投诉电话有用吗 编辑:程序博客网 时间:2024/06/05 04:57

7.1

#include <stdio.h>int square(int i) //调用函数{    return i*i; //返回i*i}int main(){    int i=0;    i=square(i);    for (;i<3;i++)    {        static int i=1;        i+=square(i);        printf ("%d,",i);    }    printf ("%d\n",i);    return 0;}

这里写图片描述

7.2 电子时钟

#include <stdio.h>int hour,minute,second;void update(){    second++;    if (second==60)    {        second=0;        minute++;    }    if (minute==60)    {        minute=0;        hour++;    }    if (hour==24)    {        hour=0;    }}void display(){    printf ("时:%d, 分:%d, 秒:%d\n",hour,minute,second);}void delay(){    int t;    for (t=0;t<100000000;t++);}int main(){    int i;    for (i=0;i<100000000;i++)    {        update();        display();        delay();    }    return 0;}

这里写图片描述

7.3 使用指针进行交换

#include <stdio.h>void swap (int a,int b){    int *p1,*p2,*p;    printf ("请输入两个整数a,b:");    scanf ("%d%d",&a,&b);    p1=&a;    p2=&b;    if (a>b)    {        printf ("最大值:%d\n",a);    }    if (a<b)    {        p=p1;        p1=p2;        p2=p;        printf ("最大值:%d\n",*p1);    }}int main(){    int a,b;   while (1)   {       swap (a,b);   }   return 0;}

这里写图片描述

7.4

#include <stdio.h>void lcm (int x,int y){ int i; printf ("请输入两个正整数x,y:"); scanf ("%d%d",&x,&y); if (x>y) {              for(i=1;;i++)         {             if (y*i%x==0)             {                 printf ("最小公倍数为:%d\n",y*i);                 break;             }         }      }  if (y>x)  {               for(i=1;;i++)         {             if (x*i%y==0)             {                 printf ("最小公倍数为:%d\n",x*i);                 break;             }         }  }}int main(){    int x,y;    while (1)    {        lcm(x,y);    }   return 0;}

这里写图片描述
小结:写得较为乱,但能计算出结果。