基于visual Studio2013解决C语言竞赛题之0418位数操作
题目
解决代码及点评
/************************************************************************/
/*
18. 给出一个不多于4位的正整数,要求:① 求出它是几位数
② 分别打印出每一位数字 ③ 按逆序打印出各位数字。
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
int GetWS18(int num) // 打印位数函数
{
int count=0;
while(num) // 当num还大于0时,num除与10,这样当num是0时,循环次数就是它的位数
{
count++; // 只要在循环体里累加就可以了
num/=10;
}
return count;
}
void RprintNum(int num)
{
while(num) // 反向打印,当num大于0时,打印最后一位,打印完最后一位后,除10去除最后一位
{
printf("%d",num%10);
num=num/10;
}
}
void printNum(int num) // 正向打印
{ int temp=1;
while(num/temp>=10) // 首先求出最高位对应的最小整数
{
temp*=10;
}
while(temp>=1) // 然后一位一位的打印
{
printf("%d ",num/temp%10);
temp/=10; // 打印一位把最高位对应额整数除与10
}
}
void main()
{
int num;
printf("please input num");
scanf_s("%d",&num); // 获取输入
printf("\n");
printf("%d",GetWS18(num )); // 打印位数
printf("\n"); printNum(num); // 打印每位数
printf("\n");
RprintNum(num); // 反向打印 system("pause");
}
代码下载及其运行
代码下载链接:
http://download.csdn.net/detail/yincheng01/6641001
解压密码为c.itcast.cn
下载解压后用VS2013打开工程文件
点击 “本地Windows调试器” 执行
程序运行结果
基于visual Studio2013解决C语言竞赛题之0418位数操作的更多相关文章
- 基于visual Studio2013解决C语言竞赛题之0205位数求和
题目
- 基于visual Studio2013解决C语言竞赛题之0401阶乘
题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...
- 基于visual Studio2013解决C语言竞赛题之0201温度转换
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...
- 基于visual Studio2013解决C语言竞赛题之0409 100以内素数
题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...
- 基于visual Studio2013解决C语言竞赛题之0408素数
题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...
- 基于visual Studio2013解决C语言竞赛题之0407最大值最小值
题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...
- 基于visual Studio2013解决C语言竞赛题之0406数列求和
题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...
- 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...
- 基于visual Studio2013解决C语言竞赛题之0404循环求和
题目 解决代码及点评 这道题考验for循环和一个简单的算法 因为每次累加的值有规律,后面一次累加是前面一次累加的两倍 所以可以用简单的循环,计算累加项和累加结果 /************ ...
随机推荐
- php如何在原来的时间上加一天?一小时
php如何在原来的时间上加一天?一小时? <?phpecho "今天:",date('Y-m-d H:i:s'),"<br>";echo &q ...
- HDU 2227 Find the nondecreasing subsequences
题目大意:给定一个序列,求出其所有的上升子序列. 题解:一开始我以为是动态规划,后来发现离散后树状数组很好做,首先,c保存的是第i位上升子系列有几个,那么树状数组的sum就直接是现在的答案了,不过更新 ...
- poj 1077 Eight(双向bfs)
题目链接:http://poj.org/problem?id=1077 思路分析:题目要求在找出最短的移动路径,使得从给定的状态到达最终状态. <1>搜索算法选择:由于需要找出最短的移动路 ...
- ZYB's Premutation(有逆序数输出原序列,线段树)
ZYB's Premutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- HDU 1796 容斥原理 How many integers can you find
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1796 处男容斥原理 纪念一下 TMD看了好久才明白DFS... 先贴代码后解释 #includ ...
- windows下C语言调用系统文件选择对话框
代码片段,在windows下用C语言调用文件选择对话框,以备忘 #define DEFAULT_DIR "" char extraction_path[MAX_PATH] = DE ...
- C#语言基础之转义字符、变量、常量、类型转换
1.转义字符: Tab键:/t 反斜杠:// 单引号:/’ 双引号:/” 回车:/r 换行:/n 警告:/a 退格:/b 换页:/f 空:/0 2.变量 ...
- 基本属性 - iOS中的本地通知
本地通知的基本使用 创建本地通知 设置属性 调度通知(添加通知到本地通知调度池) 注册用户通知权限(只需一次, 可以单独放在Appdelegate中, 或者别的地方) —> iOS8以后必须, ...
- sql学习之基础(MySql)
--#创建一个数据库 create database excise01; --#查看所有数据库 show databases; --#查看刚建的数据库 show create database exc ...
- 设计模式值六大原则——设计模式之六大原则——单一职责原则(SRP)
定义: 应该有且仅有一个原因引起类的变更. There should never be more than one reason for a class to change. 优点: 1.类的复杂性降 ...