经典c语言编程100例 请编程求【1,5000】间能被...

用C语言编程写一函数,输入一个四位数字,要求输出这四个字符,但每两个数字之间间一个空格,如输入1990,应输出“1 9 9 0”,该怎么写
用C语言编程写一函数,输入一个四位数字,要求输出这四个字符,但每两个数字之间间一个空格,如输入1990,应输出“1 9 9 0”,该怎么写
#include &stdio.h&
main()
{
scanf(&%d&,&n);
while(n&1000||n&9999)
scanf(&%d&,&n);
while(n&0)
{s[i--]=' ';
s[i--]=n%10+'0';
n=n/10;}
 }
s[8]='\0';
puts(&\n\n&);
puts(s);
}
运行结果如下:
其他回答 (7)
#include&stdio.h&
void main()
{
char s[4];
do{
printf(&请输入一个四位数!\n&);
scanf(&%d&,&num)
}while(num&1000 && num&9999)
for(int i=3; i&=0; i--)
{
a[i] = num%10 - 0 + '0';
num /= 10;
}
printf(&%c %c %c %c\n&,&a[0],&a[1],&a[2],&a[3]);
}
错了,修改下。
#include&stdio.h&
void main()
char s[4];
printf(&请输入一个四位数!\n&);
scanf(&%d&,&num)
}while(num&1000 || num&9999)
for(int i=3; i&=0; i--)
a[i] = num%10 - 0 + '0';
num /= 10;
printf(&%c %c %c %c\n&,&a[0],&a[1],&a[2],&a[3]);}
非常不好意思,又搞错了,这次的是正确的,我试过了。
#include&stdio.h&
void main()
char a[4];
printf(&请输入一个四位数!\n&);
scanf(&%d&,&num);
}while(num&1000 || num&9999);
for(int i=3; i&=0; i--)
a[i] = num%10 - 0 + '0';
num /= 10;
printf(&%c %c %c %c\n&,a[0],a[1],a[2],a[3]);
又调试过,没有问题
#include &stdio.h&
void main()
{
int thousands,hundreds,tens,//定义千位,百位,十位,个位
printf(&请输入一个四位数(0-9999)\n&);
scanf(&%d&,&a);//由键盘读入该四位数
thousands=a/1000;//获取千位
hundreds=(a-1000*thousands)/100;//获取百位
tens=(a-1000*thousands-100*hundreds)/10;//获取十位
units=(a-1000*thousands-100*hundreds-10*tens);//获取个位
printf(&%d %d %d %d\n&,thousands,hundreds,tens,units);//按要求的格式输出
getchar();//使界面停留
}
函数?
f(num)
{int i,a[4];
for(i=3; i&=0; i--)
a[i]=num%10;
num /= 10;}
printf(&%d %d %d %d\n&,a[0],a[1],a[2],a[3]);
这很简单啊,直接以字符串读入 再按格式输出就可了
#include&stdio.h&
#include&stdlib.h&
int main(){
char s[5];
scanf(&%s&,&s);
for(i=0;i&5;i++)
printf(&%c &,s[i]);
system(&Pause&);
return 0;
}
#include&stdio.h&
#include&string.h&
main()
{
char str[50];
gets(str);
for(i=0;i&strlen(str);i++)
printf(&%c &,str[i]);
printf(&\n&);
}
#include &stdio.h&
void main()
{
char a[4];
printf(&输入一个四位数字:&);
scanf(&%d&,&n);
for(i=3;i&=0;i--){
a[i]=n%10+'0';
for(i=0;i&4;i++)
printf(&%c &,a[i]);
printf(&\n&);
}
调试过,没有问题
#include&stdio.h&
main()
{
char s[4];
int num=0;
int temp=0;
printf(&请输入一个四位数:\n&);
scanf(&%d&,&num);
for(i=0;i&=3;i++)
temp=num%10;
num /= 10;
for(i=3; i&=0; i--)
printf(&%c &,s[i]);
printf(&\n&);
system(&pause&);
等待您来回答
编程领域专家如何编程实现51单片机每隔 t 时间发出一个脉冲?求C语言详细编程。。。_百度知道
如何编程实现51单片机每隔 t 时间发出一个脉冲?求C语言详细编程。。。
提问者采纳
给你个基本框架,根据你的具体要求再修改吧。使用定时1中断实现,精度比较高。#include &reg52.h&#define PERIODH (6l)/0X100
//设10ms中断1次TH1初值#define PERIODL (6l)%0X100
//设10ms中断1次TL1初值sbit P1_1 = 0x91;
//假设从P1.1输出脉冲unsigned int iC
//延时间隔时间变量unsigned int iPulseC
//脉冲脉宽时间变量void timer1() interrupt 3 using 1{//定时器每0.01秒一次中断
TH1 = PERIODH;
TL1 = PERIODL; if(iCount)
{//计数未到0,计数器-1
} if(iPulseCount)
{//计数未到0,计数器-1
iPulseCount--;
TMOD = 0X10;//方式1
EA = 1;//总中断允许
ET1 = 1;//定时器1中断允许
TR1 = 1;//启动定时器1
//脉冲输出端口,假设输出正脉冲,预置为低电平
iCount = 200;//每间隔200*10ms = 2秒一个脉冲,t值变化改此处
while(iCount);//等待2秒中
//置为高电平,输出正脉冲
iPulseCount = 10;//每间隔10*10ms = 100ms一个脉冲,脉宽变化改此处
while(iPulseCount);//高电平保持100ms
//置为低电平,输出正脉冲结束
提问者评价
谢谢细心回答!我还要再开一个号提问,希望能得到帮助!
其他类似问题
按默认排序
其他1条回答
100K的方波对51来说要求太高了,尽量不要用,这个程序如果频率不对,对“TH0=0XF6;//初始值246”这句里的0xf6调整下,向上增加数值会提高精度。/**************************MCU:S52crystal:24M****************************/#include&reg52.h&sbit output=P1^0;//P1.0脚输出100Kvoid timer0_init(){TMOD=0X02;//定时器0方式2TH0=0XF6;//初始值246ET0=1;//开中断EA=1;//开总中断TR0=1;//开定时器0}void main(){timer0_init();while(1);}void timer_isvof()interrupt 1{output=!//中断翻转}另外,虚机团上产品团购,超级便宜
51单片机的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用C语言编写程序:求[1,1000]之间能被3整除,且至少有一位上的数是5的所有数之和,以及这样的数的的个数。_百度知道
用C语言编写程序:求[1,1000]之间能被3整除,且至少有一位上的数是5的所有数之和,以及这样的数的的个数。
#include &stdio.h&int my_test(int num){ if(num&=9) {
if(num==5) return 1;
} else if(num&=99) {
if ((num%10==5)||(num/10==5)) return 1;
} else if((num%10==5)||(num/10==5)||(num/100==5))
return 1; return 0;}main(){ int i,sum=0; int flag=0; for (i=1;i&1000;i++){
if((i%3==0) && (my_test(i)==1)) {
// printf(&%d\t&,i);
} printf(&sum=%d,flag=%d\n&,sum,flag);}结果 sum=32949,flag=66
个数不止66吧,所以结果也不是那个,程序还是有点问题。你用下面的程序运行下,可以发现结果出来的个数与你的的差异。你再把程序改一下吧。#include&stdio.h& main()
int i=1,n=0; for(;i&999;i++)
if(i%3==0)//判断i是否能被3整除
if(i%10==5||(i/10)%10==5||(i/100)%10==5)//依次判断i的个、十、百位是
//否有5,若有,打印i
{ printf(&%d\n&,i); }
} return 0; }
不好意思,我上午已经发现问题了,在评论里面更改过了
其他类似问题
按默认排序
其他3条回答
估计是判断“且至少有一位上的数是5”不会了,呵呵给你个算法,你看看行不行flag=0;while(x){
if(x%10==5)
//这个用了标记5的
int n=0,h=0;
//n是个数,h是和for(int i=3;i&1000;i+=3){
if(i.toString().indexOf('5')&=0){n++;h+=i;}}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
C语言高手请进
求1-10000之间所有满足各位数字的立方和等于它本身的数。
例如:153的各位数字的立方和是1*1*1+5*5*5+3*3*3=153 。
您的举报已经提交成功,我们将尽快处理,谢谢!}

我要回帖

更多关于 经典c语言编程100例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信