// 经典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语言经典编程相关推荐

  1. 用Go语言 实现快速排序 (Golang经典编程案例)

    快速排序,代码如下: package mainimport ("fmt" )//left 表示 数组左边的下标,right 表示数组右边的下标,array 表示要排序的数组 fun ...

  2. C语言译密码字符串A变E,C语言经典编程算法

    <C语言经典编程算法>由会员分享,可在线阅读,更多相关<C语言经典编程算法(21页珍藏版)>请在人人文库网上搜索. 1.C语言经典编程算法汇集(不断补充)用pi/4=1-1/3 ...

  3. C语言怎样编程分子变化,C语言经典编程(一)

    <C语言经典编程(一)>由会员分享,可在线阅读,更多相关<C语言经典编程(一)(20页珍藏版)>请在人人文库网上搜索. 1.C语言经典编程(一)[程序1]题目:古典问题:有一对 ...

  4. c语言编程经典实例利润,C语言经典编程实例100题解答

    C语言经典编程实例100题 答案+答案 C语言经典编程实例100题C语言程序实例100个(一) [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少, 1.程序 ...

  5. C语言经典编程(浙大版C语言第三版)详解

    C语言经典编程详解 – 一览表: 1.[C语言经典编程]练习2-1 Programming in C is fun! (5分) 2.[C语言经典编程]练习2-3 输出倒三角图案 (5分) 3.[C语言 ...

  6. 完数c++语言程序_C语言经典100题(19)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(18)中第三部分编程题的答案: #includeint main(){ int s=0,a,n,t; printf("请输入 a ...

  7. c语言变量相等问题穷举法,C语言穷举法经典例题.ppt

    <C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...

  8. 哪个专业学python语言_想学Python编程?你真的适合吗?

    原标题:想学Python编程?你真的适合吗? 有的人说我想学什么.我想干什么,很多时候都是头脑发热,单凭一腔热血,可是这样的路即便走上去你又能坚持多久呢?所以,每每有人问我学Python编程怎么样,我 ...

  9. 为什么C语言是最适合单片机编程的高级语言

    单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如VC等等,为什么这些语言不能用来编写单片机程序呢?那么这个问题的答案就是 ...

最新文章

  1. “无现金”社会来临,你还有安全感吗?
  2. 剑指 Offer 28. 对称的二叉树【无取巧,易于理解!】
  3. iOS手势操作简介(一)
  4. boost库linux编译安装
  5. 织梦dedecms内核自适应移动POS机刷卡机招商加盟企业网站源码
  6. AcWing 847. 图中点的层次(BFS模板)
  7. [ ZJOI 2006 ] Trouble
  8. Python:猜拳游戏项目(excel形式保存信息)
  9. 3dMax模型的重置变换
  10. 穷举法 解决用3个水桶等分8升水 python实现
  11. 趣开门APP、微信开门小程序,让开门更简单,更有趣!
  12. npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.
  13. .net写加密的com组件给ASP,VB,VC等其他语言调用
  14. 贝叶斯统计——基础篇
  15. 都快2021年了,居然还有数据分析师不会MECE
  16. 华为路由器时间同步_好用实在价格亲民 - 华为路由WS5200四核版初体验
  17. 假设有一段英文,其中有单独的字母I误写为i,请编写程序进行纠正。
  18. 计算机专业笔记本低压,笔记本win7系统下CPU低压u和标压m的区别对比
  19. 【2021CCF基线系统】基于飞桨实现系统认证风险预测-异常检测
  20. (接上篇)浮动静态路由主备路径故障倒换实验NQA技术

热门文章

  1. Repeater 得到checkbox值
  2. 汉堡王什么汉堡好吃_315 曝光用过期面包做汉堡:汉堡王到底怎么了?
  3. python安装第三方库win10_在win里anaconda怎么安装第三方的库
  4. 算法工程师_浅谈算法工程师的职业定位与发展
  5. scss怎么引入到html,Sass 导入指令
  6. php还原json,PHP语言中使用JSON和将json还原成数组
  7. 2012届华为校园招聘机试题
  8. 《ASP.Net MVC5 框架揭密》学习笔记
  9. 安卓Socket处理
  10. LAMP之Apache