您的位置:首页 > 移动开发 > 微信开发

小程序两款 - 闲来无事练练手

2014-04-02 17:28 309 查看
  最近看指针,感觉理解的一般般,想用指针写点东西吧,写出来又是错的.....囧!

  无聊了就随便写了两个程序回顾一下以前的东西......还好,没忘多少......

 

1)
输入10个数存入数组a中,并将其倒序存放及输出


 

#include <stdio.h>

#include <conio.h>

int a[10];

void input()

{

    int i;

  
 printf("Please input 10 numbers:\n");

  
 for(i=0;i<10;i++)

  
    
scanf("%d",&a[i]);

}

void swap(int a[],int n)

{

    int
i,temp;

  
 for(i=0;i<=(n-1)/2;i++)

 {

  
    
temp=a[i];

  
    
a[i]=a[n-1-i];

  
    
a[n-1-i]=temp;

 }

}

void output(int a[])

{

    int i;

    printf("the
new order is:\n");

  
 for(i=0;i<10;i++)

  
    
printf("%d ",a[i]);

}

void main()

{

  
 input();

  
 swap(a,10);

  
 output(a);

  
 getch();

}
运行截图:





 

2)
输入一个分数约分后输出


 

#include
<stdio.h>
#include
<math.h>

int nume,deno,i;
//nume是分子,deno是分母

void
output()
{
  
 if(nume*deno>0)
//分子分母同号
  
 {
  
    
if(nume<0) //分子分母为负
  
    
{
  
    
   
if(deno==-1)
  
    
   
{
  
    
   
   
nume=-1*nume;
  
    
   
   
printf("约分后为: %d\n\n",nume);
  
    
   
}
  
    
   
else
  
    
   
{
  
    
   
   
nume=-1*nume; deno=-1*deno;
  
    
   
   
printf("约分后为: %d/%d\n\n",nume,deno);
  
    
   
}
  
    
}
  
    
else //分子分母为正
  
    
{
  
    
   
if(deno==1)
  
    
   
   
printf("约分后为: %d\n\n",nume);
  
    
   
else
  
    
   
   
printf("约分后为: %d/%d\n\n",nume,deno);
  
    
}
  
 }
  
 else //分子分母异号
  
 {
  
    
if(nume<0) //分子为负,分母为正
  
    
{
  
    
   
nume=-1*nume;
  
    
   
if(deno==1)
  
    
   
   
printf("约分后为: -%d\n\n",nume);
  
    
   
else
  
    
   
   
printf("约分后为: - %d/%d\n\n",nume,deno);

  
    
}
  
    
else //分子为正,分母为负
  
    
{
  
    
   
if(deno==-1)
  
    
   
   
printf("约分后为: -%d\n\n",nume);
  
    
   
else
  
    
   
{
  
    
   
   
deno=-1*deno;
  
    
   
   
printf("约分后为: - %d/%d\n\n",nume,deno);
  
    
   
}
  
    
}
  
 }
}

void
main()
{
begin:
printf("输入分数:
");
scanf("%d/%d",&nume,&deno);
for(i=1;i<=(fabs(nume)<fabs(deno)?fabs(nume):fabs(deno));i++)
{
  
 if((nume%i==0)&&(deno%i==0))
  
 {
  
    
nume=nume/i;
  
    
deno=deno/i;
  
    
i=1;
  
 }
}
output();
goto begin;
//使程序循环
}
  

运行截图:





  这个程序需要点说明,为了完美显示出约分后的分数,还需要考虑分母是否为1的情况

 
所以输出函数(output)可能显得有点麻烦,不过主要看main函数体就OK,那个output不看也罢,就是绕来绕去用if判断最后输出的函数...

 

4.24
修改作


 

#include <stdio.h>

#include <math.h>

int nume,deno,i; //nume是分子,deno是分母

void output()

{

  
 if(deno==0)

  
    
printf("分数无意义,重新输入...\n");

  
 if(nume*deno>0) //分子分母同号

    {

  
    
if(nume<0) //分子分母为负

  
    
{

  
    
   
if(deno==-1)

  
    
    {

  
    
   
   
nume=-1*nume;

  
    
   
   
printf("约分后为: %d\n\n",nume);

  
    
    }

  
    
    else

  
    
    {

  
    
   
   
nume=-1*nume; deno=-1*deno;

  
    
   
   
printf("约分后为: %d/%d\n\n",nume,deno);

  
    
    }

  
    
}

  
    
else //分子分母为正

  
    
{

  
    
   
if(deno==1)

  
    
   
   
printf("约分后为: %d\n\n",nume);

  
    
    else

  
    
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: