日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言返回一个数的任意倍数,几道基础C语言题

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言返回一个数的任意倍数,几道基础C语言题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.遞歸求階乘

分析:n!=1*2*...*n

那么我們有兩種方法

遞歸

思路:根據階乘的規律n!=n*(n-1)!

定義函數f(x),使函數返回x*f(x-1)的值,直到n=1。經過函數調用本身求出結果。

代碼:

#include

int cnt(int n);//調用聲明函數

int main()

{

int n;

scanf("%d",&n);

printf("%d",cnt(n));

return 0;

}

int cnt(int n)//定義聲明函數

{

if(n>0)

n*=cnt(n-1);

else n=1;

return n;

}

循環

思路:由于n!=n*(n-1)*...*1,則從a=1開始,+1之后與a相乘。

代碼:

#include

int main()

{

int n;

scanf("%d",&n);

int a=1;//a要初始化為1

for(int i=1;i<=n;i++) //注意i應從1取到n,因此判斷條件為<=

a=a*i;

printf("%d",a);

return 0;

}

2.分制轉換

題目:給出一個百分制成績,要求輸出成績等級‘A’(90分及90分以上),‘B’(80到89分),’C’(70到79分),’D’(60到69分),’E’(60分以下)。

輸入格式

百分制成績,整數,例如,100,89

輸出格式

等級制成績,例如A,B,C等等

eg85 B

分析:這道題很簡單,在我復習重寫的時候發現比以前寫的簡潔了不少,因為用到了映射的思想,使分數由5類簡化為三類:100分,60到99分,60分以下。

代碼:

#include

int main()

{

int s;

scanf("%d",&s);

s/=10;//成績映射為0-10

if(s==10)//10(滿分)的情況

printf("A");

else if(s>=6)//將6到9轉換為字母等級

printf("%c",('E'-s+5));

else printf("E");//小于6(不及格)的情況

return 0;

}

3.判斷是否為素數(<1000)

分析:素數為只能被1和自己整除的數,因此我們可以通過循環,從2開始遍歷比數小的所有數。

優化:

2的倍數非素數,因此先判斷是否為2的倍數。

判斷某個數是否為因數時,可以一起決定多個數是否為因數。

比如判斷11是否為素數,要從2到9判斷,而2非因數,同時可以確定6到10也非因數,因為2乘這些數大于11,因此不可能有比2大的數與6到10相乘得11.

代碼:

#include

int main()

{

int n;

int r=1; //用r記錄是否為素數。1為素數0非素數

scanf("%d",&n);

//大于2的偶數非素數

if((n/2>1)&&(n%2==0))

r=0;

//判斷是否為素數

for(int i=3;r==1&&i*i<=n;i+=2) //更新直接+2,因到只用判斷奇數

{

if(n%i==0)

{

r=0;

break; //跳出for循環

}

}

//通過r的值(是否為素數)進行輸出

if(r==0)

printf("NO");

else

printf("YES");

return 0;

}

4.今天是第幾天

題目:輸入三個整數為年月日 ,輸出是那一年的第幾天

eg:輸入:1990 9 20 輸出:263

#include

int main()

{

int y,m,d;

scanf("%d%d%d",&y,&m,&d);

int r=d; //結果初始化為天數d

for(int i=1;i

{

switch(i)

{

case 2:

r+=28;

break;

case 4:

case 6:

case 9:

case 11:

r+=30;

break;

default://31天的月份較多放在default中

r+=31;

}

}

//判斷平年閏年,若為閏年2月有29天,再加1

if((y%400==0)||((y%4==0)&&(y%100!=0)))

r++;

printf("%d",r);

return 0;

}

5.按要求輸出

題目:寫一程序,輸入為三行,第一行為整數a、第二行為字符c、第三行為整數b。(0

輸出共四行。第一行依次輸出a,b,c,三個值之間用一個空格分隔;第二依次輸出a+b,a-b,a* b,a/b,a%b的值,每個值之間用一個空格分隔;第三行輸出a和b的比率(浮點數,精確到小數點后兩位);第四行輸出a和b的百分比率(浮點數,精確到小數點后兩位)。具體格式見輸出樣例。

輸入樣例

12

b

234

輸出樣例

12 234 b

246 -222 2808 0 12

The ratio of 12 versus 234 is 0.05.

The ratio of 12 / 234 is 5.13%.

代碼:

#include

int main()

{

//輸出控制字符:加\;輸出%:%%

long long a,b; //整型出現乘法:用lld

char c;

scanf("%lld",&a);

scanf("\n%c",&c);

//scanf:1.按格式要求。2.輸入非c時自動忽略前導空白符號,不用加\n。

//3.輸入為c時會讀入空白符號->如何解決上一行的換行符殘留:加\n或用getchar

scanf("%lld",&b);

printf("%lld %lld %c\n",a,b,c);

printf("%lld %lld %lld %lld %lld\n",a+b,a-b,a*b,a/b,a%b);

printf("The ratio of %lld versus %lld is %.2lf.\n",a,b,(double)a/b);

printf("The ratio of %lld / %lld is %.2lf%%.",a,b,100*(double)a/b);

return 0;

}

6.按要求輸出

題目:一程序,輸入依次為一個整數a、一個浮點數f、一個整數b。(-10000

總結

以上是生活随笔為你收集整理的c语言返回一个数的任意倍数,几道基础C语言题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。