1、分别有1、2、3、4、5共计5个开关点,暂且定义为I0.0--I0.4,分别对应输出点Q0.0--Q0.4。
2、当这5个开关点无顺序依次接通时,相对应的输出点按照先来后到,排队的形式进行输出,同时输出不超过两个。
3、等这两个输出保持30秒以后断开,重新再检测这5个开关点的闭合状态,再按照排队的形式输出先接通开关点对应的输出点。
运算口诀:
1、已知部分求整体(用加法):两个有几,两数相加再加一,两个第几,两数相加再减一,有几第几,两数相加不算一。
2、已知整体求部分(用减法):两个第几,大小相减再减一,从几到几,大小相减再加一,一共第几,大小相减再加一。
必须要弄清排队的顺序、方向及作为标准的人(或物)的位置。在计算总人数的时候,作为标准的人(或者物)如果计算了两次,就要减去1;如果没有计算,反之要加上1.既不能重复,也不能遗漏。
解决这类问题的关键:巧用画图法,找出重复的部分再解答。先来给大家详细总结排队问题所涉及到的知识点:
要素:
(1)方向:前后、左右、头尾。
(2)关键词:有几个、第几个、A和B之间、从A到B。
方法:(1)定方向 (2)定位置 (3)标条件和标问题(4)看图列式。
例题:
1、前面有4个人,后面有3个人,一共有多少人?
2、从前往后数排第4,从后往前数排第3,一共有多少人?
3、前面有4人,从后数排第3,一共有多少人?
在小学一年级的数学课程中,通常会对孩子们考察一类与生活结合紧密的数学问题,那就是我们常说的排队问题。这类问题的学习可以培养孩子们的数形结合能力,运用画图法解决实际问题的能力。
#include<stdio.h>#include<malloc.h>
#define N 10
int main(void)
{
int i,j,x,m,flag=1
char ch
m=N
char (*p)[10]=(char (*)[10])calloc(N,10*sizeof(char))
for(i=0i<10i++)
for(j=0j<10j++)
p[i][j]='\0'
printf("输入ID时不超过10位,第一位不能为'*'\n")
i=0
while(1)
{
while(i<m)
{
printf("请输入第%d名的ID:",i+1)
ch=getchar()
for(j=0j<10j++)
{
if(j==0&&ch=='*')
{
flag=0
break
}
if(ch=='\n')
break
p[i][j]=ch
ch=getchar()
}
if(flag==0)
break
i=i+1
}
if(flag==0)
break
m=m+N
p=(char (*)[10])realloc(p,m*10*sizeof(char))
for(x=ix<mx++)
for(j=0j<10j++)
p[x][j]='\0'
}
for(j=0j<ij++)
{
printf("第%d名:",j+1)
printf("%s\n",p[j])
}
free(p)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)