小程序两款 - 闲来无事练练手
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();
}
运行截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
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;
//使程序循环
}
运行截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
这个程序需要点说明,为了完美显示出约分后的分数,还需要考虑分母是否为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
无聊了就随便写了两个程序回顾一下以前的东西......还好,没忘多少......
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();
}
运行截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
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;
//使程序循环
}
运行截图:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
这个程序需要点说明,为了完美显示出约分后的分数,还需要考虑分母是否为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
相关文章推荐
- 为Android App程序签名ZZ 分类: Android开发 2014-05-30 10:54 96人阅读 评论(0) 收藏
- Cocos2d-x 程序是如何开始运…
- Eclipse&nbsp;修改程序名
- C#&nbsp;获取安装程序的路径
- vc++&nbsp;win32程序中使用MFC
- TSTC tcode和程序对应的表
- (转)Java 程序的执行过程
- 编写自己的android&nbsp;jni程序
- 关闭程序时候弹出visual stud…
- Ubuntu Linux自动启动程序
- linux&nbsp;下&nbsp;C&nbsp;程序(进程)&nbsp;内存布局
- 用GDB调试程序&nbsp;转
- java 调用本地程序
- 提交iPhone&nbsp;app程序遇到newss…
- java&nbsp;万年历&nbsp;程序
- 编译原理笔记2 引论续之编译程序的…
- X11/Linux下发布Qt程序(Deploying …
- GLUT&nbsp;简单程序
- linux&nbsp;下&nbsp;C&nbsp;程序(进程)&nbsp;内存布局
- Unity&nbsp;利用协同程序实现场景…