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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

c语言圈子,C语言经典编程

發布時間:2024/4/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言圈子,C语言经典编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//?經典1

//隨機產生20個[10,50]的正整數存到數組中,并求出數組中的所有元素最大值,最小值,平均值以及個元素之和,及第二大值

int?a[20]?=?{0};

printf("隨機產生的元素:\n");

for?(int?i?=?0;?i?

a[i]?=?arc4random()?%?(50?-?10?+1)?+?10;

printf("%d??",a[i]);

}

printf("\n");

//求所有元素的最大值

int?max?=?0;

for?(int?i?=?0;?i?

if?(a[i]?>?max)?{

max?=?a[i];

}

}

printf("max?=?%d\n",?max);

//求所有元素的最小值

int?min?=?a[0];

for?(int?i?=?1;?i?

if?(min?>?a[i])?{

min?=?a[i];

}

}

printf("min?=?%d\n",?min);

//求所有元素的和

int?sum?=?0;

for?(int?i?=?0;?i?

sum?+=?a[i];

}

printf("sum?=?%d\n",?sum);

//求所有元素的平均值

float?mid?=?0;

mid?=?sum?/?20;

printf("mid?=?%.2f\n",?mid);

//求第二大值

int?smax?=?0;

for?(int?i?=?0;?i?

if?(smax?

smax?=?a[i];

}

}

printf("smax?=?%d",?smax);

//?經典2

//編程在一個已知的字符串中查找最長單詞,假定字符串只含字母和空格,用空格來分隔單詞

//思路:

//主要是判斷單詞,連續的字母,就假定為一個單詞,從讀取到第一個字母開始計數,然后直接遇到空格,為一個單詞的長度,用一個變量記錄,最長單詞的長度,如果要輸出最長的單詞,一般是放在數組里面,記住下標.

char?targetString[]?=?"I?come?china";

int?maxLength?=?0;//最長長度

int?currentLength?=?0;//當前得到的單詞的長度

int?maxIndex?=?0;//當前最長單詞的起始下標

int?tempArray[200]?=?{0};

for?(int?i?=?0;?i?<=?strlen(targetString);?i++)?{

if?(targetString[i]?!=?'?'?&&?targetString[i]?!=?'\0')?{

currentLength++;

}?else?{

if?(maxLength?<=?currentLength)?{

maxLength?=?currentLength;

maxIndex?=?i?-?currentLength;??//記錄當前最長單詞的起始下標

tempArray[maxIndex]?=?maxLength;

}

currentLength?=?0;//同時給記錄單詞長度的currentlength做清零操作

}

}

for?(int?i?=?0?;?i?

if?(tempArray[i]?==?maxLength)?{

for?(int?j?=?i;?j?

printf("%c",?targetString[j]);

}

printf("\n");

}

}

//?經典3

//耶穌有13個門徒,其中有一個就是出賣耶穌的叛徒,請用排除法找出這位叛徒:13人圍坐一圈,從第一個開始報號:1,2,3,1,2,3...凡是報到'3'就退出圈子,最后留在圈子內的人就是出賣耶穌的叛徒.請找出它原來的序號

int??array[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};//模擬報數,0表示未退出圈子,1表示退出圈子

int??numbers=13;//表示剩余人數

int??count?=?0;//表示報數

int???i?=0;//?表示下標的循環變量

while?(numbers?>?1)?{

if?(array[i]!=0)?{//如果當前得到的數組元素不為0,表示沒有退出圈子,則count++表示報數

count++;

}

if?(count?==?3)?{

printf("%d號退出圈子\n",array[i]);

array[i]?=?0;//表示當前報數的人報的數為3,則通過數組元素賦值為0來表示他退出圈子

count?=?0;//報數歸0

numbers?--;//表示退出圈子后剩余的人數

}

i++;

i?=?i?%13;//?如果i為13時,讓i重新從0開始

}

for?(?int?i?=0;?i?

if?(array[i]?>?0)?{

printf("%d號是叛徒",array[i]);

}

}

//?經典4

//將兩個排好序的數組,合并到另一個數組中,并且合并之后的數組也是有序的

int?i?=?0,?m?=?5,?a[5]?=?{1,?3,?7,?9,?13};

int?j?=?0,?n?=?6,?b[6]?=?{2,?4,?8,?16,?20,?24};

int?k?=?0,?c[11];

while(i?+?j?

{

if(j?>=?n)?{

c[k++]?=?a[i++];

}

else?if(i?>=?m)?{

c[k++]?=?b[j++];

}

else?if(a[i]?

c[k++]?=?a[i++];

}

else?{

c[k++]?=?b[j++];

}

}

for(i?=?0;i?

printf("%d??",c[i]);

}

//?經典5

//有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。

float?sum?=?0;

float?x?=?2,?y?=?1,?temp?=?0;

for?(int?i?=?0;?i?

sum?=?sum?+?x?/?y;

temp?=?x;

x?=?x?+?y;

y?=?temp;

}

printf("%.3f",?sum);

//給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。

//方法一:

long?a=0,b=0;

int?t=0;

printf("請輸入不多于5位的正整數:\n");

scanf("%ld",&a);

if?(a?>=?100000)?{

printf("請輸入不多于5位的正整數\n");

}else?{

for(t=0;a>0;a/=10,t++)

{

b=(b*10)+a%10;

}

printf("這個數是%d位的,逆序數=%ld\n",t,b);

}

//方法二:

int?a?=?0,?b?=?0,?c?=?0,?d?=?0,?e?=?0,?x?=?0;

printf("請輸入不多于5位的整數:\n");

scanf("%d",?&x);

if?(x?>?100000)?{

printf("請輸入不多于5位的整數");

}else{

a?=?x?/?10000;//分解出萬位

b?=?x?%?10000?/?1000;//分解出千位

c?=?x?%?1000?/?100;//分解出百位

d?=?x?%?100?/?10;//分解出十位

e?=?x?%?10;//分解出個位

if?(a?!=0?)?{

printf("這個數是5位的,?逆序數?=?%d%d%d%d%d\n",e,?d,?c,?b,?a);

}else?if?(b!=0){

printf("這個數是4位的,?逆序數?=?%d%d%d%d\n",e,d,c,b);

}else?if?(c!=0){

printf("這個數是3位的,?逆序數?=?%d%d%d\n",e,d,c);

}else?if?(d!=0){

printf("這個數是2位的,?逆序數?=?%d%d\n",e,d);

}else?if?(e!=0){

printf("這個數是1位的,?逆序數?=?%d\n",e);

}

}

//?方法三

int?num?=?0,?temp?=?0,?i?=?0;

printf("請輸入一個數字\n");

scanf("%d",?&num);

while(num?>?0)

{

temp?=?num?%?10;

++i;

printf("%d",?temp);

num?=?num?/?10;

}

printf("\n這個數是%d位數",?i);

//?經典6

//一個5位數,判斷它是不是回文數.即12321是回文數,個位與萬位相同,十位與千位相同.

long?w?=?0,?q?=?0,?s?=?0,?g?=?0?,?x?=?0;

printf("請輸入一個5位數:\n");

scanf("%ld",?&x);

if?(x?>?100000?||?x?

printf("請輸入一個5位數:\n");

}else{

w?=?x?/?10000;//求萬位的數字

q?=?(x?%?10000)?/?1000;?//求千位的數字

s?=?x?%?100?/?10;//求十位的數字

g?=?x?%?10;//求個位數字

if?(g?==?w?&&?q?==?s)?{

printf("是回文數");

}

else{

printf("不是回文數");

}

}

//經典7

//星期一???Monday

//星期二???Tuesday

//星期三???Wednesday

//星期四???Thursday

//星期五???Friday

//星期六???Saturday

//星期日???sunday

//請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母

char?week1;

char?week2;

printf("星期一???Monday?\n星期二???Tuesday?\n星期三

Wednesday??\n星期四???Thursday??\n星期五???Friday??\n星期六???Saturday???\n星期日

sunday\nplease?enter?a?letter\n");

scanf("%c",&week1);

switch(week1)

{

case('M'?|?'m'):printf("the?answer?is?Monday\n");

break;

case'W':printf("the?answer?is?Wednesday\n");

break;

case('F'?|?'f'):printf("the?answer?is?Friday\n");

break;

case('S'?|?'s'):

{

printf("please?enter?the?second?letter\n");

scanf("%c",&week2);

getchar();

if(week2?==?('a'?|?'A'))

printf("the?answer?is?Saturday\n");

else

if(week2?==?('u'?|?'U'))

printf("the?answer?is?Sunday\n");

else

printf("there?is?no?answer\n");

}

break;

case('T'?|?'t'):

{

printf("please?enter?the?second?letter\n");

scanf("%c",&week2);

getchar();

if(week2?==?('U'?|?'u'))???????????????printf("the?answer?is?Tuesday\n");

else???????????????if(week2?==?('H'?|?'h'))

printf("the?answer?is?Thursday\n");

else

printf("there?is?no?answer\n");

}

break;

default:

printf("there?is?no?correct?answer\n");

break;

}

//?經典8

//有1000000個數,每個數取值范圍是0-999999找出其中重復的數,重復次數

int?a[1000000]?=?{0},?b[1000000]?=?{0},?count?=?0;

for(int?i?=?0?;?i?

a[i]?=?arc4random()%1000000;

b[a[i]]++;

}

for?(int?j?=?0?;?j?

if(b[j]?>?1){

count++;

printf("重復數是%d?\n",j);

}

}

總結

以上是生活随笔為你收集整理的c语言圈子,C语言经典编程的全部內容,希望文章能夠幫你解決所遇到的問題。

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