当前位置:首页 » 编程语言 » c语言编程输入一个五位数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程输入一个五位数

发布时间: 2023-02-05 09:21:58

c语言编程,任意输入一个五位正整数,逆序输出每一位上的数 如输入54321 输出12345 要代码

#include<stdio.h>

intres[5]={};//外部变量,把每一位作为数组元素进行存储
int*p=res;

intmain(){

intnum=12345;

voidser(int);//分别输出每一位数字
ser(num);
printf(" ");

p=res+4;//指针置于数组末尾
for(inti=0;i<sizeof(res)/sizeof(res[0]);i++){//逆序输出
printf("%d",*p--);
}
return0;
}


voidser(intnumber){
if(number>9){
ser(number/10);//递归
}
printf("%d",number%10);//顺序输出
*p=(int)number%10;
p++;
}


/*
程序的输出顺序为10->8->6->4->2
递归步骤解释
1:第一次执行ser函数,numbser=12345判断数字大于9,将int(1234)再次执行函数ps:(int)/(int)结果为int
2:待执行ser函数后,输出结果个位数12345%10=5

3:第二次执行ser函数....类比步骤1
4:待递归执行ser函数,类比步骤2,输出十位个数1234%10=4

5:类比步骤1
6:类比步骤2,输出百位个数123%10=3

7:类比步骤1
8:类比步骤2,输出千位12%10=2

9:类比步骤1
10:number值为1,不再递归,直接输出万位1%10=1
*/

如有帮助,请点赞支持原创QVQ

❷ 编写一个c语言程序,输入5个数,求它们中最大值和最小值并输出

#include <stdio.h>

void main( )

{

int i = 0 , num[5], max = 0 , min = 0 ; /* max:用于存放最大值;min:用于存放最小值 */

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

scanf("%d", &num[i]) ; /* 循环地将输入的五个数存入 num[5] 数组中 */

for( i = 0 ; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 max 还大,则将相应的数存入 max 变量中 */

if( num[i] >= max )

max = num[i] ;

for( i = 0; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 min 还小,则将相应的数存入 min 变量中 */

if( num[i] <= min )

min = num[i] ;

printf("MAX num is :%d MIN num is :%d ", max, min) ;

}

c语言编程技巧

1、while(--n>=0)与while(n-->0)

在大多数C语言实现中,--n >=0 至少与等效的n-- >0 一样快,大多数情况下前者更快。

主要因为第一个表达式首先从n中减去1然后将结果与0比较;而第二个表达式首先保存n,从n中减去1之后比较保存值与0的大小,这中间多了一个保存的时间,从而前一个表达式更快。

注意:这样的循环中,尽量不使用unsigned类型,否则前者会出现无限循环情况。

2、多重循环处理

对于多重循环,如果可能,应将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。

❸ 输入一个五位的正整数,求各位数字之和 怎么用C语言写

#include<stdio.h>
main()
{
int a,b,c,d,e,n;
printf("请输入一个五位数:");
scanf("%d",&n);
a=n/10000;n=n%10000;
b=n/1000;n=n%1000;
c=n/100;n=n%100;
d=n/10;n=n%10;
e=n;
printf("五个位数之和为:%d\n",a+b+c+d+e);
}
这个答案够简单了吧,一目了然!!!

❹ C语言如何实现输入一个5位整数

#include<stdio.h>void main(){ int a,b,c,i,flag,t; printf("请输入三个数以空格间隔:"); scanf("%d %d %d",&a,&b,&c); if(a>b) { t=a; a=b; b=t; } if(b>c) { t=b; b=c; c=t; } if(a>b) { t=a; a=b; b=t; } printf("输入的三个数按升序排列为%d %d %d \n",a,b,c); printf("请输入一个数:"); scanf("%d",&a); if(a%3==0&&a%5==0) printf("这个数能同时被3、5整除\n"); else printf("这个数不能同时被3、5整除\n");} %D%A

❺ 编程c语言程序,输入一个五位数,判断是否为对称说,如:12321,20202都是对称数

供参考……
#include "stdio.h"//
void main(void){
int nDec;
printf("请输入一个十进制五位整数...\nnDec=");
for(;;){
scanf("%d",&nDec);
if(nDec>9999 && nDec<100000) break;
printf("错了!请输入10000~99999间的整数...\nnDec=");
}
printf("%d",nDec);
if((nDec%10000)/1000!=(nDec%100)/10 || nDec/10000!=nDec%10) printf("不");
printf("是对称数!\n");
}

❻ 使用C语言编程:从键盘输入一个5的正整数,判断它是不是回文数。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

voidcheck(int*Hui)//这个函数用来检测是否是5位数
{
inti;
intcount=0;//计数变量
charlenth[10];
for(i=0;i<strlen(itoa(*Hui,lenth,10));i++){
count++;
}//这里for循环可以换成count=strlen(itoa(*Hui,lenth,10))
printf("这是%d位数",count);
if(count==5){
puts("goon..");
}
else{
puts("yourinputiserror!");
exit(0);
}
}

intmain()
{
int*Huiwenshu=NULL; //也可以用intHuiwenshu[6];,推荐前一种
intLast_digit;//末位数字
intFirst_digit;//首位数字
intThou_digit;//千位数字
intTen_digit;//十位数字

Huiwenshu=(int*)malloc(sizeof(int*));//申请int*大小的连续空间
puts("请输入一个5位数:");
scanf("%d",&*Huiwenshu);//获取5位数
check(Huiwenshu);//将5位数导入检查函数
/*将5位数分解,涉及"%"取余数的技巧*/
Last_digit=*Huiwenshu%10;//取末位
Ten_digit=((*Huiwenshu%100-(Last_digit))/10);//取十位
Thou_digit=((*Huiwenshu%10000-(*Huiwenshu%1000))/1000);//取千位
First_digit=((*Huiwenshu%100000-(*Huiwenshu%10000))/10000);//取首位

if(Last_digit==First_digit){ //判断回文数
if(Ten_digit==Thou_digit){
printf("%d是回文数!",*Huiwenshu);
}
else{
printf("%d不是回文数!",*Huiwenshu);
return0;
}
}
else{

}
free(Huiwenshu);//释放内存

return0;
}

代码里的注释很清晰,如果不懂再问噢。其实还有另一种方法,就是直接定义一个int型数组,然后通过取对应的位数进行比较,然后得出结果,不过这种方法通用性较低,但是也行。

❼ c语言输入一个五位数,判断各位数的奇偶性,并输出奇数和偶数的个数分别是多少

比如一五位数a=a1a2a3a4a5,在计算机运算中:
a%10=a5, a/10=a1a2a3a4
所以以上述过程,每次将a=a/10,循环直到a=0,就可以通过取余获得循环下去,就可以分别获得a1~a5,再通过%2判断奇偶性了
int a;
int r1=0,r2=0;
scanf("%d",&a);//这里没做异常处理哈,应该之后对a进行一下判断的
while(a!=0)
{
int tmp=a%10;
if(tmp%2==0) r2++;
else r1++;
a=a/10;
}
printf("奇数%d个,偶数%d个",r1,r2);

❽ C语言编程:对于输入的一个五位数,求出其每位上的数字,并输出,每两位之间用空格隔开。

main( )
{
long a, b, c, d, e, x;
scanf("%ld", &x);
a = x / 10000; /* 分解出万位 */
b = x % 10000 / 1000; /* 分解出千位 */
c = x % 1000 / 100; /* 分解出百位 */
d = x % 100 / 10; /* 分解出十位 */
e = x % 10; /* 分解出个位 */
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n", e, d, c, b, a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n", e, d, c, b);
else if (c!=0) printf(" there are 3, %ld %ld %ld\n", e, d, c);
else if (d!=0) printf("there are 2, %ld %ld\n", e, d);
else if (e!=0) printf(" there are 1, %ld\n", e);
}

❾ c语言,输入一个五位数,输出这个五位数并使之两数之间有一个空格

#include<stdio.h>
#include<string.h>

int main(void){

char *a;

printf("请输入一个五位数:");

scanf("%s",&a);

for(int i=0;i<=5;i++){

ptintf("%d ",*(a+i));

}

printf(" ");

return 0;

}

❿ 如何用C语言实现输入1个5位以内的正整数 分别输出每位数

#include<stdio.h>
void
main()
{
int
num;
printf("请输入一个不大于5位的数:");
scanf("%d",&num);
if(num>99999)
printf("您的输入有误!\n");
else
{
if(num<10)
{
printf("您输入的是1位数:%d\n",num);
}
else
if(num<100)
{
printf("您输入的是2位数:第一位是%d,第二位是%d\n",num/10,num%10);
}
else
if(num<1000)
{
printf("您输入的是3位数:第一位是%d,第二位是%d,第三位是%d\n",num/100,num/10%10,num%10);
}
else
if(num<10000)
{
printf("您输入的是4位数:第一位是%d,第二位是%d,第三位是%d,第四位是%d\n",num/1000,num/100%10,num/10%10,num%10);
}
else
{
printf("您输入的是5位数:第一位是%d,第二位是%d,第三位是%d,第四位是%d,第五位是%d\n",num/10000,num/1000%10,num/100%10,num/10%10,num%10);
}
}
}