【十万火急】求 程序大牛 用C语言写一个触摸按键的程序,原理图附上,我写的不成功的程序,能改正确最好 十万火急。求一个 用C语言编写的红绿灯程序。(在tc上运行。...

C\u8bed\u8a00\u7a0b\u5e8f\u8bbe\u8ba1\uff0c\u5341\u4e07\u706b\u6025\uff01\u6c42\u52a9\u5927\u4f6c\uff01\u7f16\u5199\u4e00\u4e2a\u5341\u9875\u5e2e\u52a9\u6587\u6863\u7a0b\u5e8f\u4ee3\u7801\uff0c\u5177\u4f53\u8981\u6c42\u5982\u4e0b\uff1a

#include
#include
void display()
{
int num = 0;
char c;

do
{
num++;
if (num >= 10)
{
return;
}
system("cls");
printf("\u8fd9\u662f\u7b2c%d\u9875\n", num);
printf("\u6309\u6570\u5b57\u952e\u8df3\u5230\u76f8\u5173\u9875\u9762\n");
printf("\u6309\u4efb\u610f\u952e\u8df3\u5230\u4e0b\u4e00\u9875\n");
c = getch();
if (c >= '1' && c <= '9')
{
num = c - '1';
}
}
while (1);
}
int main(int argc, char* argv[])
{
display();
return 0;
}

#include
#include
#include
void main()
{
int front,rear,temp,n,m,i,j,k,l,group,pre,result[100],newer[100],r[100][100]={0};/*front\u4e3a\u961f\u5217\u5f53\u524d\u5143\u7d20\u5728\u961f\u5217\u4e2d\u7684\u5e8f\u53f7,rear\u4e3a\u961f\u5c3e\u5143\u7d20\u5728\u961f\u5217\u4e2d\u7684\u5e8f\u53f7,temp\u4e3a\u5f53\u524d \u5143\u7d20\u5728direction\u4e2d\u7684\u5e8f\u53f7,group\u4e3a\u7ec4\u53f7,pre\u4e3a\u524d\u4e00\u51fa\u5217\u5143\u7d20\u5728direction\u4e2d\u7684\u5e8f\u53f7\u3002 */
char **direction,*p1,*p2;//direction\u4e3a\u65b9\u5411\u96c6\u5408\u3002
printf("\u8bf7\u8f93\u5165\u53ef\u4ee5\u901a\u884c\u7684\u65b9\u5411\u7684\u4e2a\u6570\uff1a\n");
scanf("%d",&n);
printf("\u8bf7\u8f93\u5165\u5404\u4e2a\u65b9\u5411\uff1a\n");
direction=(char **)malloc(2*n*n);
for(i=0;i<n;i++)
{
*(direction+i)=(char *)malloc(2);
scanf("%s",*(direction+i));
}
printf("\u8bf7\u8f93\u5165\u4e0d\u80fd\u540c\u65f6\u901a\u884c\u7684\u4e24\u4e2a\u65b9\u5411\u7684\u4e2a\u6570\uff1a\n");
scanf("%d",&m);
printf("\u8bf7\u8f93\u5165\u5404\u4e2a\u65b9\u5411\uff1a\n");
for(i=0;i<m;i++)
{
p1=(char*)malloc(2);
p2=(char*)malloc(2);
scanf("%s%s",p1,p2);
k=-1;
l=-1;
for(j=0;j<n;j++)
{
if(!strcmp(*(direction+j),p1))
k=j;
if(!strcmp(*(direction+j),p2))
l=j;
if(k>=0&&l>=0)
break;
}
free(p1);
free(p2);
r[k][l]=1;
r[l][k]=1;
}
front=n-1;
rear=n-1;
for(i=0;i<n;i++)
{
*(newer+i)=0;
}
group=1;
pre=0;
do
{
front++;
if(front==rear+1)
front=0;
for(i=0;i<n;i++)
{
if(!strcmp(*(direction+i),*(direction+front)))
{
temp=i;
break;
}
}
if(temp<pre)
{group++;
*(result+temp)=group;
for(i=0;i<n;i++)
{
*(newer+i)=r[temp][i];
}
}
else if(*(newer+temp)!=0)
{
rear++;
if(front==rear)
{
for(i=n;i<n+rear;i++)
free(*(direction+i));
rear=0;
}
else
*(direction+rear)=(char *)malloc(2);
*(direction+rear)=*(direction+temp);
}
else
{
*(result+temp)=group;
for(i=0;i<n;i++)
*(newer+i)=*(newer+i)+r[temp][i];
}
pre=temp;
}while(front!=rear);
printf("\u6240\u9700\u8981\u7684\u4fe1\u53f7\u706f\u6570\u76ee\u4e3a%d\u4e2a\n",group);
for(i=1;i<group+1;i++)
{
printf("%d ",i);
for(j=0;j<n;j++)
{
if(*(result+j)==i)
printf("%s ",*(direction+j));
}
printf("\n");
}
free(direction);
}
//\u53c2\u8003

#define KEYLOOP 10 /*连续键间隔次数,需小于KEYDELAY*/ unsigned char key_bak; unsigned char key_temp; unsigned char key_old; unsigned char key_data; bit key_ok;
unsigned char code Tab_key[]= //行列式键盘映射,这个表主要是为了直观 {0x00, //无键按下 '7','8','9','/', '4','5','6','*', '1','2','3','-', 'C','0','='

扩展阅读:什么叫重大刑事案件 ... 最近加精 收藏最多 ... 内蒙一朵云倒了 ... 捡尸 为什么都不敢报警 ... 内蒙古云氏家族覆灭 ... 内蒙古政坛两大家族 ... 内蒙古 云家 顺口溜 ... 中央对内蒙古云家 ... 为什么被捡尸后很少报警 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网