我有一段C语言程序,拜求哪位大神能帮我逐句注释一下?我的邮箱[email protected]

\u8fd9\u4e2ac\u8bed\u8a00\u7a0b\u5e8f\u8be5\u548b\u7f16\u5199\u5440....\u80fd\u4e0d\u80fd\u5e2e\u6211\u7f16\u5199\u5b8c\u6574\u7248\u7684\u7a0b\u5e8f\u554a\uff1f\u6211\u7684\u90ae\u7bb1\[email protected]\u62dc\u6258\u5566...

#include
#include
#define N 3
class Stud
{
public:
void setdata()
{
cout<<"input student "<<num+1<<" no,name,deg"<<endl;
cin>>no>>name>>deg;
sum+=deg;num++;
}
static void avg()
{
cout<<"\u603b\u6210\u7ee9\uff1a"<<sum<<endl;
cout<<"\u603b\u4eba\u6570\uff1a"<<num<<endl;
cout<<"\u5e73\u5747\u6210\u7ee9\uff1a"<<sum/num<<endl;
}
void disp()
{ static int i=1;
cout<<"student"<<i++<<":"<<endl;
cout<<no<<"\n"<<name<<"\n"<<deg<<endl;
}
protected:
int no;
double deg;
char name[20];
static double sum;
static int num;
};
int Stud::num(0);
double Stud::sum(0);
void main()
{
int i;
Stud stu[N];
for(i=0;i<N;i++)
stu[i].setdata();
for(i=0;i<N;i++)
stu[i].disp();
Stud::avg();
}

\u53ef\u4ee5\u7684\u54e6\u3002\u3002\u3002

#include <AT89X51.h>
包含头文件 AT89X51.h
这个不是C的标准头 估计是某人自编的 里面应当放了本程序用的一些自定义函数体
所以后面不用看了

你这是51单片机的程序 应该是显示字符的0-F的字符。具体是不是 这个要结合你的电路图来分析的。

晕…………
等待大神吧

色,要求: ,标示出直线在不同区域的颜色,在给定区域内,直线为白色,在区域外直线为黄色

程序是这样的:
#include <graphics.h>//添加graphics.h头文件
const int wxl=100,wxr=400,wyb=100,wyt=300;//声明参
数,即参考区域
typedef struct//定义直线结构体
{
int x1,y1,x2,y2;//声明变量
}LINE;//LINE现在即为一个过(x1,y1),(x2,y2)的直线

int encode(int x,int y)//编码,用来判断点的位置
{
int ret=0;
if(x<wxl) ret|=1<<0;//ret与(1左移0)后相或,标记横坐//标在区域左侧
if(x>wxr) ret|=1<<1;// 左移1,同上右侧
if(y<wyb) ret|=1<<2;//左移2,标记纵坐标在区域下侧
if(y>wyt) ret|=1<<3;//左移3,同上上侧
return ret;
}
//
void midPoint(int x1,int y1,int x2,int y2,int *xn,int *yn)//求(x1,y1),(x2,y2)中点,*xn,*yn分别为指向中点的指针
{
int mx,my,code1,code2;
while(1)
{
mx=(x1+x2)/2;//mx is the middle of x1,x2
my=(y1+y2)/2;//my 同上
if(abs(x1-mx)+abs(y1-my)<3) break;//如果两点的横纵坐//标距离之和小于6,即 难以区分,退出
else//否则
{
code1=encode(x1,y1);//对其中一点
code2=encode(mx,my);//及中点编码
if((code1&code2)!=0)//如果按位相与不为0,即两点在区域
{//外侧,且位于同侧
x1=mx;y1=my;//把该点移向中点
}
else//否则
{
x2=mx;y2=my;//把另一点移向中点
}
}
}
*xn=mx;//把中点横坐标的地址传给指针*xn
*yn=my;//同上
}
void cs_line(int x1,int y1,int x2,int y2)//编码并设
{//定颜色
int code1=0,code2=0,mx,my;
int spx,spy,epx,epy;
LINE l;//已知一条直线l
setcolor(0x0c);//设定背景颜色黑色,图像红色
line(x1,y1,x2,y2);//画出l
code1=encode(x1,y1);code2=encode(x2,y2);//判定两点位//置
if((code1&code2)!=0) return;//如果两点位于区域外,且//在同侧,返回
else if((code1|code2)==0)//如果编码按位相或等于0,即
{//两点位于区域内
setcolor(0x0f);//设定背景颜色黑色,图像白色
line(x1,y1,x2,y2);//画出直线
}
else//否则
{
midPoint(x1,y1,x2,y2,&spx,&spy);//中点
midPoint(x2,y2,x1,y1,&epx,&epy);//中点
setcolor(0x0f);//设定背景颜色黑色,图像白色
line(spx,spy,epx,epy);
}
}
void main()
{
int driver,mode,i;//驱动,模式,
driver=VGA;//初始化图形
mode=VGAHI;//初始化局部变量
detectgraph(&driver,&mode);//检测VGA卡
initgraph(&driver,&mode,"c:\\tc");//初始化图形系统
setcolor(0x0e);//设定背景为黑色,图形为黄色
line(wxl,wyb,wxl,wyt);//以下四句画出边框
line(wxl,wyt,wxr,wyt);
line(wxr,wyt,wxr,wyb);
line(wxr,wyb,wxl,wyb);
cs_line(50,50,190,400);//画出给定直线
cs_line(150,250,320,250);//画出给定直线
getch();//接受键盘输入
closegraph();//退出图形
}
能力有限,就能理解这么多了。

请楼主提供单片机电路图。或说明P0,P2口接了什么元件。

  • C璇█!濡備綍姹備竴涓3脳3鏁村舰鐭╅樀涓渶澶у厓绱犵殑鍊,骞跺皢鏈澶у艰繑鍥炲埌涓诲嚱鏁...
    绛旓細int get_max(int a[4][4]){ int i,j;int max=-0xfffffff;for (i=1;i<=3;i++)for (j=1;j<=3;j++)max=max>a[i][j]?max:a[i][j];return max;} 涓诲嚱鏁伴噷鐩存帴浼犲叆鏁扮粍灏監K浜嗭紝寤鸿涓嶈鍒扮櫨搴︿笂鏉ユ壘浣滀笟鐨勭瓟妗堛
  • 缂栧啓涓涓绋嬪簭,瑕佹眰鑳藉杈撳叆浠绘剰澶氫釜鏁板瓧,鐒跺悗杈撳嚭杩欎簺鏁板瓧涓殑鏈澶...
    绛旓細2銆佷娇鐢C璇█瀹炵幇锛歩nclude<stdio.h> include<stdlib.h> int main( ){ int val;int min, max;scanf("%d", &val);min = max = val;//CTRL + Z 缁撴潫杈撳叆 while (scanf("%d", &val) != EOF){ if (val > max){ max = val;} else if (val < min){ min = val;} } printf...
  • 鎷滄眰璁$畻鏈哄ぇ绁炴暀涓涓嬬敤C璇█鎵撹繖涓绋嬪簭
    绛旓細include<stdio.H>int main(){int p=100000,n=5,a; double r=1.05,a1; a=p; while(n--)a*=r; printf("%d.%d\n",a/100,a%100); return 0;}
  • 鎬ユ眰C璇█绋嬪簭,鍛ㄥ叚鏅氫笂灏辫浜~
    绛旓細绋嬪簭鍙崇畝鍗曞彸澶氾紝浣嗘槸鏂规硶寰堢畝鍗 1 鐢ㄤ笅鏍囨柟娉曪細姹傛渶澶у-浣跨敤涓涓猰ax鍙橀噺锛屽埄鐢╥f(max<a[i]) max=a[i];姹傚緱 姹傛渶灏忓-鍚屼笂 姹傚钩鍧囧-浣跨敤sum鍙橀噺锛屽埄鐢╢or(i=0;i<n;i++) sum=sum+a[i];sum=sum/n;姹傚拰-鍚屼笂 鍊掔疆椤哄簭--鍒╃敤for(i=0;i<=n/2;i++) {t=a[i];a[i]=a[n...
  • C璇█銆佽緭鍏ヤ袱涓暣鏁,姹鏈灏忓叕鍊嶆暟,鏈澶у叕绾︽暟銆(鎻愮ず鐢╞reak璇彞)鎷...
    绛旓細int gcd(int a,int b)//姹傛渶澶у叕绾︽暟 { int temp;while(1){temp=a%b;a=b;b=temp;if(b==0)break;//break璺冲嚭while寰幆锛岃繖閲屽彲浠ョ敤while(b!=0)鏉ヨВ鍐筹紝灏变笉闇瑕乥reak浜嗐倉 return a;} int gd(int a,int b)//姹傛渶灏忓叕鍊嶆暟锛屽師鐞嗗悓涓 { int temp=a;while(1){ if(temp%a==...
  • 姹C璇█娴佺▼鍥:涓涓3*4鐨勭煩闃,瑕佹眰缂栧啓涓涓绋嬪簭鎵惧嚭姣忎竴琛屼腑鐨勬渶澶у...
    绛旓細include <cmath> include <iostream> using namespace std;void swap(double &a,double &b){ double temp=a;a=b;b=temp;} int InverseMatrix(double *matrix,const int &row){ double *m=new double[row*row];double *ptemp,*pt=m;int i,j;ptemp=matrix;for (i=0;i<row;i++){ fo...
  • 鎬ユ眰c璇█缂栫▼:浠庨敭鐩樿緭鍏ヤ竴涓暣鏁,姹瀹冪殑浣嶆暟,骞舵墦鍗板嚭姣涓浣涓婄殑...
    绛旓細include <stdio.h> include <malloc.h> int main (void){ int a, b, c, h, i, t, l;//i鏄綅鏁 char f;do { i = 0;printf("璇疯緭鍏ヤ竴涓暟:");scanf("%d", &a);c = a;for (;a != 0; i++){ b = a/10;a = b;} int * p = (int *)malloc(i*sizeof(int))...
  • 鎷滄眰璁$畻鏈哄ぇ绁炴暀涓涓嬬敤C璇█鎵撹繖涓や釜绋嬪簭
    绛旓細include<stdio.h> include<math.h> int main(){ long long c;double r;printf("Please input the current population:");scanf("%lld",&c);printf("Please input the rate of population growth(%%):");scanf("%lf",&r);r/=100;c=(long long)(c*pow(r+1.0,5));c=c%1000>=500...
  • 鎷滄眰璁$畻鏈哄ぇ绁炴暀涓涓嬬敤C璇█鎵撹繖涓や釜绋嬪簭
    绛旓細include<stdio.h>int main(){int x,m1,m2,i; printf("Enter the first number:"); scanf("%d",&m1); m2=m1; for(i=1;i<10;i++) {printf("Enter next number:"); scanf("%d",&x); if(x>m1) {m2=m1; m1=x; } else if(x>m2) m2=x; } printf("Largest...
  • 姹傚渾閿ヤ綋绉殑c璇█绋嬪簭鎷滄墭澶х浜, 鏍规嵁鎴戝啓鐨勭▼搴忔鍥惧啓涓涓...
    绛旓細include <stdio.h> float pi=3.14;void main(){ float r,h;printf("璇疯緭鍏ュ崐寰剅:\n");scanf("%f",&r);if(r<=0){ printf("闈炴硶杈撳叆");} else { printf("璇疯緭鍏ラ珮h:\n");scanf("%f",&h);if(h<=0){ printf("闈炴硶杈撳叆");} else { float s=pi*r*r;float v=s*h/3;pr...
  • 扩展阅读:编程必背100个代码 ... 考试前必拜三大神是谁 ... 吓人的编程代码 ... 程序员学什么编程语言 ... 初学编程必背50个 ... 简单的c语言程序编程 ... 三类人不适合学编程 ... c语言必背100代码 ... 初学编程100个代码大全 ...

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