| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:关于SWITCH和IF的简单题
只看楼主 加入收藏
编程真难学啊
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-8-9
收藏
 问题点数:0 回复次数:5 
关于SWITCH和IF的简单题
题目如下,代码我已经编出来了(我初学可能编的麻烦)大家有没有更好的办法在少改原代码的基础上,改进一下,
只用"IF"和"SWITCH"来编
输入一下不多于5位的正整数,1.分别打印出每一位的数字
#include <math.h>
main()
{
unsigned long a,b,c,d,e,f;
scanf("%ld",&a);
if(a<=99999&&a>=10000)
{b=a/10000;c=(a%10000-a%1000)/1000;d=(a%1000-a%100)/100;e=(a%100-a%10)/10;f=a%10;
printf("%ld,%ld,%ld,%ld,%ld",b,c,d,e,f);}
if(a<=9999&&a>=1000)
{b=a/1000;c=(a%1000-a%100)/100;d=(a%100-a%10)/10;e=a%10;
printf("%ld,%ld,%ld,%ld",b,c,d,e);}
if(a<=999&&a>=100)
{b=a/100;c=(a%100-a%10)/10;d=a%10;
printf("%ld,%ld,%ld",b,c,d);}
if(a<=99&&a>=10)
{b=a/10;c=a%10;
printf("%ld,%ld",b,c);}
if(a<=9&&a>=1)
printf("%ld",a);
}
2,按逆序打印出各位的数字,比如567输出为785我的代码;
#include <stdio.h>
main()
{
unsigned long a,b,c,d,e,f;
printf("input a");
scanf("%ld",&a);
if(a<=9&&a>=1)printf("%d",a);
else if(a<=99&&a>=10){b=a%10;c=a/10;
printf("%ld,%ld",b,c);}
else if(a<=999&&a>=100)
{b=a%10;c=(a%100-a%10)/10;d=a/100;
printf("%ld,%ld,%ld",b,c,d);}
else if(a<=9999&&a>=1000)
{b=a%10;c=(a%100-a%10)/10;d=(a%1000-a%100)/100;e=a/1000;
printf("%ld,%ld,%ld,%ld",b,c,d,e);}
else if(a<=99999&&a>=10000)
{b=a%10;c=(a%100-a%10)/10;d=(a%1000-a%100)/100;e=(a%10000-a%1000)/1000;f=a/10000;
printf("%ld,%ld,%ld,%ld,%ld",b,c,d,e,f);}


另外还有一题明天再加!
搜索更多相关主题的帖子: IF SWITCH 
2006-08-19 22:43
7℃冰块
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-16
收藏
得分:0 
用array,几行就够吧。

Simple is good.
2006-08-19 22:49
7℃冰块
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-16
收藏
得分:0 
#include <stdio.h>

main(){
char a[5];
printf("请输入最多5位数:\n");
gets(a);
printf("%c",a[0]);
if(a[1]!='\0')
printf("%c",a[1]);
if(a[2]!='\0')
printf("%c",a[2]);
if(a[3]!='\0')
printf("%c",a[3]);
if(a[4]!='\0')
printf("%c",a[4]);
}

/*这是顺序输出的,逆序的稍微改一下就ok
没有循环用真的会很痛苦 =.=!
FC5, gcc 4.1.0编译通过
*/

[此贴子已经被作者于2006-8-19 23:14:22编辑过]


Simple is good.
2006-08-19 23:11
cwande
Rank: 2
等 级:新手上路
威 望:3
帖 子:333
专家分:0
注 册:2006-8-18
收藏
得分:0 
哈,如果能用while()就好了....

汗,都懒得写代码了.......... cheat了一个威望,哈.....
2006-08-19 23:22
nicksharp
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-8-4
收藏
得分:0 
逆序
#include<stdio.h>
int main(void)
{
int number,right_number;

printf("please input number");
scanf("%i",&number);

while(number!=0)
{
right_number=number%10;
printf("%i",right_number);
number=number/10;
}
printf("\n");
getch();
return 0;
}


正常排列的话建议用数组
2006-08-21 17:28
7℃冰块
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-8-16
收藏
得分:0 

楼上的算法很巧,学习了!
不过似乎忽略了
只用"IF"和"SWITCH"来编
的要求
不用while的话似乎很不好写


Simple is good.
2006-08-21 17:45
快速回复:关于SWITCH和IF的简单题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012823 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved