当前位置:首页 » 编程软件 » 编程朋友数

编程朋友数

发布时间: 2023-01-23 03:35:40

‘壹’ 小学编程题目c语言摘红苹果

程序设计思路:

一、小朋友和苹果都具有多样属性(比如高度、编号、状态等,还可以扩展出姓名,重量等)。所以小朋友和苹果要定义成结构体。

二、人和苹果数量都是手动输入,因此数组大小不确定,要使用动态数组(不使用动态,就得得限制用户输入的大小)。

三、题目要求确保摘到的总数最多,从最矮的小朋友开始摘,因此小朋友的数组要进行排序

四、递归函数实现摘苹果逻辑,每人在自己够到的范围中随机摘两个(不够就拿1个)。(递归函数每次发现一个可摘取的苹果,有50%概率看中,都没看中,默认摘取最后一个看中的苹果)。

下面是代码(控制台刷新函数中cls仅限window系统运行,其它操作系统,删除或修改):

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<malloc.h>

#define AFR 7//苹果图像的行数

#define AFC 6//苹果图像的行数

#define CFR 5//小朋友图像的行数

#define CFC 6//小朋友图像的行数

typedef struct apple//表示苹果数据的结构体

{

int aid;//苹果编号

int height;//苹果的高度

int status;//0:表示未被摘取。1:表示已被摘取

char aframe[AFR][AFC];//表示苹果的图像

}APPE;

typedef struct childern//表示小孩子的编号

{

int cid;//小孩子的编号

int height;//小孩子的身高

int n;//小孩摘取的苹果数量

char cframe[CFR][CFC];//表示小朋友的图像

APPE **appes;//小孩摘取的苹果结构指针数组

}CHN;


int n,m;//苹果和小朋友的个数,设为全局变量

APPE *setApps();//设置苹果。成功返回结构数组,失败返回NULL

CHN *setChns();//设置小盆友。同上。

int orderChnByHeight(CHN *chns);//对小朋友数组按照身高升序排列

int getApple(APPE *appes,CHN *chns,char (*strInfo)[100]);//递归,模拟小朋友依次选苹果。异常返回-1

int showFrame(APPE *appes,CHN *chns,char (*strInfo)[100]);

int main()

{

int i;

char (*strInfo)[100]=NULL;//用于显示操作流水

APPE *appes=NULL;

CHN *chns=NULL;

appes=setApps();

chns=setChns();

if(orderChnByHeight(chns)==-1)return 1;

srand(time(NULL));

strInfo=(char (*)[100])malloc(sizeof(char *)*m*100);

for(i=0;i<m;i++)strInfo[i][0]=0;

if(!strInfo) return 1;

showFrame(appes,chns,strInfo);

return 0;

}

int showFrame(APPE *appes,CHN *chns,char (*strInfo)[100])

{

static int k=1;

int i,j;

system("cls");

printf(" =============每组图像靠上的数值为高度,靠下的数值为编号============ ");

printf(" =============为确保能拿到最多的苹果,小朋友们按升序排列============ ");

for(i=0;i<AFR;printf(" "),i++)

for(j=0;j<n;j++)

printf("%s ",appes[j].aframe[i]);

printf(" ");

for(i=0;i<CFR;printf(" "),i++)

for(j=0;j<m;j++)

printf("%s ",chns[j].cframe[i]);

printf(" ==================================================================== ");


printf("操作流水: ");

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

printf("%s ",strInfo[i]);

fflush(stdin);

printf("按下任意键进行下一步。。。。。。 ");

getchar();

if(getApple(appes,chns,strInfo)==-1)return -1;

if(k)showFrame(appes,chns,strInfo),k--;

return 1;

}

int getApple(APPE *appes,CHN *chns,char (*strInfo)[100])

{

static int i=0,aflag,cflag;

int j,indexSave;

if(appes==NULL||chns==NULL) return -1;

if(chns[i].n==2)i++;//当前小朋友拿够2个,换下一个小朋友

if(i==m)return 1;//所有人均拿过,结束递归

aflag=0;

for(j=0;j<n;j++)

if(appes[j].status==0) {aflag=1;break;}

if(aflag==0) return 1;//所有苹果均拿完,结束递归

indexSave=-1;

cflag=0;

for(j=0;j<n;j++)

{

if(appes[j].status==0 && appes[j].height<=chns[i].height)

{

cflag=1;

indexSave=j;

if(rand()%2)//每次发现,有50%概率拿取,如所有可拿苹果都没选中,选最后发现的目标

break;

}

}

if(cflag)//小朋友拿起一个苹果的过程

{

appes[indexSave].status=1;

//改变苹果初始图像

sprintf(appes[indexSave].aframe[6]," ");

chns[i].appes[chns[i].n]=&appes[indexSave];

chns[i].n++;

if(chns[i].n==1)

{

//改变小朋友初始图像

sprintf(chns[i].cframe[0]," %c%c/ ",3,1);

sprintf(strInfo[i],"编号%d的小朋友拿取了1个苹果(编号%d) ",chns[i].cid,chns[i].appes[0]->aid);

}


if(chns[i].n==2)

{

//改变小朋友初始图像

sprintf(chns[i].cframe[0]," %c%c%c ",3,1,3);

sprintf(strInfo[i],"编号%d的小朋友拿取了2个苹果(编号%d和编号%d) ",chns[i].cid,chns[i].appes[0]->aid,chns[i].appes[1]->aid);

}

}

if(cflag==0 && chns[i].n==0) sprintf(strInfo[i],"编号%d的小朋友没有能拿到的苹果,非常沮丧! ",chns[i].cid),i++;

if(cflag==0 && chns[i].n==1) i++;

return getApple(appes,chns,strInfo);

}

int orderChnByHeight(CHN *chns)

{

CHN chnTemp;

int i,j;

chnTemp.appes=(APPE **)malloc(sizeof(APPE*)*2);

if(!chnTemp.appes) return -1;

else

{

chnTemp.appes[0]=chnTemp.appes[1]=NULL;

if(chns)

for(i=0;i<m-1;i++)

for(j=i+1;j<m;j++)

if(chns[i].height>chns[j].height)

chnTemp=chns[i],chns[i]=chns[j],chns[j]=chnTemp;

}

free(chnTemp.appes);

return 1;

}

CHN *setChns()

{

int i;

CHN *chns=NULL;

printf("请输入小朋友的个数:");

scanf("%d",&m);

chns=(CHN *)malloc(sizeof(CHN)*m);

if(!chns) return NULL;

printf("请输入%d个小朋友身高(不超过3位整数): ",m);

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

{

chns[i].cid=i+1;

scanf("%d",&chns[i].height);

chns[i].height=chns[i].height%1000;//超出3位截取

chns[i].n=0;

chns[i].appes=(APPE **)malloc(sizeof(APPE*)*2);

if(!chns[i].appes) return NULL;

chns[i].appes[0]=chns[i].appes[1]=NULL;

//设置小朋友初始图像

sprintf(chns[i].cframe[0]," \%c/ ",1);

sprintf(chns[i].cframe[1]," / \ ");

sprintf(chns[i].cframe[2],"-----");

sprintf(chns[i].cframe[3],"高%3d",chns[i].height);

sprintf(chns[i].cframe[4],"ID%3d",chns[i].cid);

}

return chns;

}

APPE *setApps()

{

int i;

APPE *appes=NULL;

printf("请输入苹果的个数:");

scanf("%d",&n);

appes=(APPE *)malloc(sizeof(APPE)*n);

if(!appes) return NULL;

printf("请输入%d个苹果的高度(不超过3位整数): ",n);

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

{

appes[i].aid=i+1;

scanf("%d",&appes[i].height);

appes[i].height=appes[i].height%1000;//超出3位截取

appes[i].status=0;

//设置苹果初始图像

sprintf(appes[i].aframe[0],"高%3d",appes[i].height);

sprintf(appes[i].aframe[1],"ID%3d",appes[i].aid);

sprintf(appes[i].aframe[2],"-----");

sprintf(appes[i].aframe[3]," %c ",'|');

sprintf(appes[i].aframe[4]," %c ",'|');

sprintf(appes[i].aframe[5]," %c ",'|');

sprintf(appes[i].aframe[6]," %c ",3);

}

return appes;

}

‘贰’ 编程课对小朋友的识字量或者数学知识有要求

链接:https://pan..com/s/1uyJqLOniY6b2L-g8TUAWmA

提取码:76wm

希望这份文件可以帮助到您和您的孩子。

想象识字:将汉字变成有趣的图形和动画,加深记忆。

1+1学习法:1天学习+1天复习,识字效果事半功倍。

有趣故事:通过识字游戏推进故事发展,强化记忆。

专业朗读:国家级播音员配音,让发音更准确。

微信复习:通过微信推送孩子学习进度,并给出复习课程,让家长帮助孩子巩固。

合理规划:由简到难,每天10分钟,每天学习6个汉字。

‘叁’ T-SQL语句将好友数量超过20的用户等级提升一个级别

替你去交好友数量超过20的用户等级提升一个等级完全是可以的。

‘肆’ 学少儿编程的孩子越来越多,这股风,到底要不要追

前段时间,微信群里总是对一个新型的学科 少儿编程 讨论得热火朝天。

我一开始是持中立态度的,总觉得有追风之嫌。再加上儿子的兴趣班挺多的,所以就没有太在意。

有一天晚上,我带着孩子准备开车去吃饭,车启动后,导航软件语音提示一句:夜间行驶,请您注意安全。没想到坐在后排儿子的一句话惊到了我,他说:

因为这是一个if Else 条件判断,如果程序判断不是白天时间,就会执行夜间模式。

我立马甩头到后排,望着孩子看了好久,说:谁告诉你这些的?儿子说是因为在隔壁阿姨家跟大哥哥们玩一个编程 游戏 时,老师这样教的。

这件事情后,我对编程渐渐有好感了。



1


什么才是孩子未来最需要的能力?

正巧这几天看到一些国外推行编程的资料,在一个采访中,也提到了一个惊人的事实: 在39000多名受访的开发人员中,有26%的人是在5到15岁开始编写代码的。

美国已经有700万小朋友在学习编程,日本小学生走进APP开发私塾学习编程,英国出台规定要求5岁以上儿童学习编程,欧洲其他16个国家把编程纳入教学体系。

就 连以色列,都将编程纳入高等学校的必修科目,同时要求孩子从小学一年级就要学习编程。

而在我国,编程已经被浙江、北京、山东、江苏、重庆等省市加入 中小学必学课程。


信息奥赛竞赛人数每年还不足10万

比起奥数,得奖率高

含金量却丝毫不逊色


清华前校长陈吉宁也对少儿编程Scratch之父雷斯尼克说过:

中国未来 社会 需要的,是那种逻辑思维缜密,能够应对变化,提出独特想法的创造性人才。

我越来越觉得,最关键的不是要教孩子多少知识,知识是教不完的,你今天教的这些知识,未来可能会OUT,会有更多更新的知识出现,你怎么可能一直坚持不懈地给孩子教下去呢?

所以,培养孩子的 探索 精神、解决问题的能力和自主学习的技能才最关键。



2



为什么要让孩子学编程,几岁开始学?

在我接触了编程一段时间后,站在自己的体验和观察的角度来说,讲讲孩子需要学习编程的理由:

>理由一:让孩子做未来的引领者,而不是被迫淘汰者

未来的10年必定是 科技 时代,而 科技 对各个行业的改造也越来越快。所以,从娃未来安身立命的角度考虑,培养孩子的 科技 思维是绝对没错的。 人工智能的底层逻辑就是编程,未来如果孩子不懂编程,它是没办法和智能机器沟通的。

>理由二:英语是通向全球的语言,编程是通向未来的语言,两个都很重要

现在很多家庭会让孩子 出国留学 ,也意识到从小学英语的重要性,英语作为一种全球通用语言,孩子接触的时间越早,肯定越驾轻就熟。目前留学最热的美国,已经有30%的院校开设编程课,当地政府也希望越来越多的学生可以掌握编程技能,发展学院的特色。

美国前总统奥巴马

向青少年发起“编程一小时”活动

一个是英语、一个是编程,一个是让孩子通向全球,一个是让孩子通向未来,无论遇到多大困难,我们都会坚持学下去。

>理由三:锻炼孩子逻辑思维能力,而小学是最佳启蒙期

“编程思维(computational thinking) ”就是 “理解问题——找出路径” 的思维过程,它由 分解、模式识别、抽象、算法 四个步骤组成。通过这四个步骤每一个小问题被单独检视、思考,搜索解决方案;然后,聚焦几个重要节点,忽视小细节,形成解决思路;最后,设计步骤,执行——问题解决。

这一点我认为是编程对孩子成长、培养高效的思考模式、做事视角,帮助最大的。

同时,根据教育认知学,孩子会在7岁左右开始形成抽象逻辑思维,整个 7-12岁 是抽象逻辑思维的最佳形成期。

所以 学编程的最佳时机是小学段,趁孩子现在课业负担不重,逻辑思维也快,帮他们掌握一门有益终生的技能,我觉得就是在正确的时间做正确的事。

>理由四:短期来看,编程对孩子现在的帮助也很大

我身边有很多孩子学了编程后, 变得听话了,学习主动性提高了。还有很多孩子粗心毛病改掉了,养成细心 的习惯,

还有学了编程 英语、数学成绩提高 的。或者打开上帝视角,开始自己编写 游戏 , 改掉了 游戏 上瘾的坏习惯

还有小朋友为了多学会编程, 时间规划也增强 了......等等,太多案例了,

在这之后,有很多家长朋友们问我,还应该给孩子学一点什么?最好是孩子未来必须的一些基础技能。

我都会郑重地说: 编程 。

在这个 科技 高速发展,AI能够成为人类潜在威胁的时代,我们更需要把编程这个技能教给孩子。

我并不要求孩子去改变世界,也不是希望他成为工程师、科学家。至少,在这个领域他不能一无所知。

我并不希望,孩子长大之后,跟不上他们那个时代的变化。

而我更希望,孩子可以与时代同步,从容生活乃至引领时代。


3


给想让孩子学编程的父母几点建议

1、兴趣始终是第一位的

没有任何一个兴趣爱好是适合所有人的,编程也同样如此。 想让孩子学编程的基础就是小朋友有兴趣,愿意尝试。

2、别太急功近利

学编程不像学音乐舞蹈美术这些,会有立竿见影的效果。对很多小朋友来说, 编程有助于孩子逻辑思维的锻炼,系统观的形成,以及创造能力和解决问题能力的培养。但这些都是潜移默化的,需要有一个积累的过程。

3、可以用在线课程试试水

如果想让孩子对编程有一个系统的了解,看看孩子兴趣怎样,爸妈们可以找一些在线培训课程试试水,毕竟价格也不贵。我建议要按两个原则来选择。

一看是否有完善的课程体系,能够让孩子持续的系统化学习。 市场上有一些机构“拼凑”出的课程,实际上只是让孩子反复做小练习而已。性价比不高。

二看是编程课程能否与其它学科关联,与学校的学科教育相呼应,提升单位时间的学习价值。 小朋友们上学后的课外时间本来就不多,如果在编程学习中能融入数学、逻辑、几何、物理、甚至语文等其它知识,能大大提升学习的性价比。

‘伍’ java软件编程好学吗

任何编程语言都不是想象中那样简单的,想要做到精通更是难上加难,而且Java的学习比其他编程语言更难,但是,有利必有弊,Java虽然难于掌握,但是在应用上确实其他语言不能比拟的,应用范围也是十分广泛。所以,想要以后更好的发展,建议还是不断的挑战自己,只要不断的坚持,肯定能够掌握的。

就拿国内从业比较广泛的Java开发工程师来讲,高中毕业生都可以做。既然高中生都能从事于Java开发,说明软件开发实际上并没有我们想的那么难,毕竟目前所学的软件技术并不是做科研。

记住,软件开发需要有一定的基础,但是并没有特别高的门槛,只要具备有一定的英文和数学基础(初高中水平就好了),就可以学软件开发,尤其是编程语言的使用,因此对于软件开发而言,只要能够长期坚持下去,并且多多从事实际项目的开发,就可以积累经验,达到一个比较高的水平,所以软件开发并不难学,只要坚持,就可以有所成就。

至于零基础学java所用的时间,我以培训时间为标准,大学生一般的学习时间是5-6个月,高中生确在两年左右。

‘陆’ C语言编程语言大全

朋友您好!
其实这不是英文,而是函数名。
读取:
#include <文件名.h>
定义:
1. int 整型
2. char 字符
3. float 单精度浮点数
4. double 双精度浮点数
5. long 长整型
还有一个在#include后加
#define 变量名 值
循环:
1. for 【continue (这个为跳过一个循环)】 【break (循环终止)】
2. while
3. do—while
条件:
1. if
2. else
3. else if
输入输出:
1. scanf 在dos界面中输入
2. printf 在dos界面中输出 通常与scanf通用
3. cprintf 在dos界面中输出 可加颜色
4. fscanf 在dos界面中输出 程序寻找地址,后把值传递给一个文本文档
5. fprintf 在文本文档中输出
颜色、格式:
1. textcolor 颜色
2. textmode 格式
随机:
1. randomize
结束:
1. exit 返回原界面
2. return 退出循环
当然还有主函数:
main
望采纳!

‘柒’ C语言编程 小朋友做游戏

# include<stdio.h>
int main()
{
int a[50], total, number, i,j=0,k;
scanf("%d%d",&total,&number);
k=total;
for(i=0;i<k;i++)
a[i]=1;
while(total!=1)
{
if(total>=number)
{
j=0;
}
else
if(j>number)
j=0;
for(i=0;i<k;i++)
{
if(a[i]!=0)
{
if(j==(number-1))
{
a[i]=0;
total--;
}
j++;
}
}
}
for(i=0;i<k;i++)
if(a[i]==1)
printf("%d\n",i+1);

}
这个是我自己写的,你看一下,有什么问题问我!不知道我有没有理解你题目的意思。

‘捌’ 急!!!有谁会用c++编程求1000以内的亲和数

// friend.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
int p[12] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}; //1000内只需要考虑这几个素数
int p2[12] = {2*2, 3*3, 5*5, 7*7, 11*11, 13*13, 17*17, 19*19, 23*23, 29*29, 31*31, 37*37};int power(int n, int i) //返回n^i
{
int s;
s = 1;
if (i > 0)
for (int j = 0; j < i; j ++)
s *= n;
return (s);
}int pdeta(int n, int i) //返回n^i 的因子和1+n+n^2+......+n^i = (n^(i+1) - 1) / (n - 1)
{
if (i == 1)
return (n+1);
else
return ( (power(n, i+1) - 1)/ (n - 1) );
}int deta(int n) //返回n的因子和,不包括n
{
int s = 1;
int m = n;
for (int i = 0; i < 12 ; i ++)
if (n % p[i] == 0)
{
int j = 0;
while (n % p[i] == 0)
{
j++;
n /= p[i];
}
s *= pdeta(p[i], j);
} if (n > 1)
s *= (n + 1); return (s - m);
}int _tmain(int argc, _TCHAR* argv[])
{
// printf("%5d%5d%5d%5d\n", pdeta(2, 1), pdeta(2, 5), pdeta(3, 4), pdeta(5, 2));
// printf("%5d%5d%5d%5d\n", deta(2), deta(4), deta(220), deta(284));
for (int i = 2; i <= 1000; i ++)
if ((deta(i) > i) && (deta(deta(i)) == i))
{
printf("%5d%5d\n", i, deta(i));
}
return 0;
}

‘玖’ c+语言 编程 亲和数对 应用函数 约数知识 拜托了!!

就本题而言,原程序中的sum()函数过于复杂,而且许多变量的定义根本没有必要,精简如下:

//---------------------------------------------------------------------------

#include<stdio.h>
int sum(int n)
{
int i,s=0;
for (i=1; i<n; i++) s+=!(n%i)?i:0;
return s;
}

void main()
{
int l,m,n,sum1,sum2;
scanf("%d",&l);
while(l--)
{
scanf("%d%d",&m,&n);
sum1=sum(n);
sum2=sum(m);
if(sum1==m&&sum2==n)
printf("YES\n");
else
printf("NO\n");
}
}
//---------------------------------------------------------------------------

‘拾’ 数学题(编程题)询问 朋友五个问题,找到他生日哪一天

你说的生日是指(某月)的几号,因此必然是小于31的数字,每组数字的第一个数只要是2^n即可满足要求。
第一组:1、 3、 5 、7 、……
第二组:2、 3 、 6、 7、……
第三组:4、 5、 6、 7、12、 13……、
第四组:8、 9、 10、 11、 12、……
第五组:16、 17、 18、 ……
总之,按照二进制码的位数,每一位对应一组即可。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:710
制作脚本网站 发布:2025-10-20 08:17:34 浏览:972
python中的init方法 发布:2025-10-20 08:17:33 浏览:681
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:833
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:741
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1081
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:312
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:192
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:879
python股票数据获取 发布:2025-10-20 07:39:44 浏览:837