❶ 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);
}
}
}