初学C语言问题多多,心情好烦好闷,真想不学了~~~那位请进解决问题!~!~

Python017

初学C语言问题多多,心情好烦好闷,真想不学了~~~那位请进解决问题!~!~,第1张

你改成如下就可以了,在TC3.0上可以的

#include<stdio.h>

#include<math.h>

void main()

{

float a,b,c,disc,x1.x2,p,q

scanf(\"a=%f,b=%f,c=%f\",&a,&b,&c)

disc=b*b-4*a*c

p=-b/(2*a)

q=sqrt(disc)/(2*a)

x1=p+qx2=p-q

printf(\"\\n\\nx1=%5.2f\\nx2=%5.2f\\n\",x1,x2)

}

你丢了#include<stdio.h>,它表示要用到输入输出函数

main()前边加个void,表示无反回值,后边不用加“;”

最后一行丢了个“)”

这个问题的提法有问题,智能控制器不可能是模拟的,它虽然叫做控制器但是实质就是一个算法或者一个系统函数,既然你要做智能检测的话,检测的精髓都在算法上,而你做的又是电路,这个是矛盾的。

要做这个课题的智能检测一般是这样:先提取酒精浓度和酒精浓度的变化率作为输入量,然后设置模糊论域和实际论域,比如酒精浓度的度量为0-100,酒精浓度变化率的浓度定义为0-10,模糊输入论域定义为0-12,然后通过量化因子把实际论域的度量映射到模糊论域,然后建立一个输出论域,例如醉酒程度为重度醉酒驾驶,中度醉酒驾驶,轻度醉酒驾驶,酒后驾驶,正常驾驶,分别记为0-4的模糊输出论域。这个模型比较特殊,无需去模糊化。最后建立模糊关系,if 酒精浓度为0 and 酒精浓度的变化率为0 then判定正常驾驶。if 酒精浓度为....and 酒精浓度的变化率为...then 判定为.......。因为被控对象没有时滞环节,所以模糊控制器一般都是稳定的。把算法仿真成功以后改写成C语言或者汇编语言,弄好传感器和AD DA以后接上就完事了。

智能检测和proteus无关,一般是用matlab里面的simulink仿真的。

这个课题虽然没有太多理论上的创新点,但是好像国内没什么人做过,做一下是完全可以的。

给你,已经编译运行确认了:

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

//最大步数限制

#define MAX_STEP_ON 65535

#define MAX_X 15

#define MAX_Y 15

//房间的磁砖

unsigned arr[MAX_X][MAX_Y]

//相邻磁砖的位移

const int stepx[]={-1,0,1,1,1,0,-1,-1}

const int stepy[]={1,1,1,0,-1,-1,-1,0}

//记录当前位置

int current[2]

//步数

unsigned stepcount=0

int check(){

int x,y

for(x=0x<MAX_Xx++){

for(y=0y<MAX_Yy++){

if(arr[x][y]==0)

return 0

}

}

return 1

}

int printinfo(int success){

if(!success){

printf("It's not Complete walk around the room\n")

}

printf("the bug total walk:%d steps\n\n",stepcount)

int x,y

for(x=0x<MAX_Xx++){

for(y=0y<MAX_Yy++){

if(y==0)

printf("\n%d\t",arr[x][y])

else

printf("%d\t",arr[x][y])

}

}

return 1

}

int clean(){

int x=0,y=0

for(xx<MAX_Xx++){

for(yy<MAX_Yy++){

arr[x][y]=0

}

}

printf("please input the begin Abscissa\n")

scanf("%d",&current[0])

printf("please input the begin Ordinate\n")

scanf("%d",&current[1])

arr[current[0]][current[1]]+=1

return 1

}

int walk(){

if(check()==0){

int step=rand()%9

int nextx=current[0]+stepx[step]

int nexty=current[1]+stepy[step]

if(stepcount<MAX_STEP_ON){

printinfo(0)

exit(0)

}

if(nextx>=0&&nextx<=MAX_X-1&&nexty>=0&&nexty<=MAX_Y-1&&arr[nextx][nexty]<65535){

++arr[nextx][nexty]

++stepcount

//printf("%d,%d\t%d\n",current[0],current[1],step)

current[0]=nextx

current[1]=nexty

}

walk()

}

else{

printinfo(1)

exit(0)

}

return 1

}

int main(){

int isclean=clean()

srand((unsigned)time(NULL))

walk()

}