求高人指教C语言程序问题,麻烦看看下面程序,这段程序应该怎么理解?
aaa:和goto aaa组成了循环,二者之间的那段是循环体,循环在i=6时停止,就是sum等于从1累加到5,sum=1+2+3+4+5。goto少用,三五个goto就乱了
不晓得你这程序是不是和单片机有关的。。。我觉得有点像。。。首先定义了一个uchar *char_table的无字符型指针,指向一个二维数组,但是已经给出的程序中好像没有用到这个数组。。。if(dir_f==up) offset=0; //如果dir_f=up,则offset=0,否则运行else后面 的语句
else offset=(dip_num-1)*32;
T0_Initial();
while (1)
{
Matrix(char_table);
}
}
void timer0() interrupt 1 //定时器1
{
TH0=0xb1; // 给高8 位赋值
TL0=0xe0; // 给低8 位赋值
#include "wdwda.h"
这是库函数 相信你这能理解。
2
#define uchar unsigned char
#define int16 unsigned int
#define roll_speed 8 //滚动速度
这是宏定义,这也是基本的 ,如果你不懂,可以再问我。
3void delay(uchar i)//y延迟函数,自己设定时间
{
while(i--);//死循环
}
void T0_Initial(void)//这是子函数
{
TMOD=0x01;//这是说明计数方式,现在用的是方式一
TH0=0xb1;//特殊功能器高电位初始化
TL0=0xe0;//地点位初始化
ET0=1;//外部中断打开
EA=1;//外部总中断打开
TR0=1;//开启计数
下边的循环主要是单片机的内容,你了解即可。此题主要面向的是单片机的C语言,你想这方面看看。求采纳
#include <dadwda.h>
#include "wdwda.h"
#define uchar unsigned char //用uchar表示无符号字符类型
#define int16 unsigned int //用int16表示无符号整型
#define roll_speed 8 //滚动速度
enum direction {up,down}dir_f; //定义一个direction类型的枚举全局变量dir_f,这个变量只能取uchar n=0; up或着down。
int16 offset;
void delay(uchar i) //这个函数要看怎么用,如果用于全局变量能改变原来的值表示
{ 把变量值改成空值,也就是删除。如果不用于全局变量没用。
while(i--);
}
void T0_Initial(void) //这应该是对前面的定义的全局变量进行赋值,其中0x表示这个数是十六
{ 进制,比如0xb1表示我们通常的11*16+1=177
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;
}
这些都只是孤立的定义,很多时候还要根据用法来判断有什么作用的
#include <dadwda.h>
#include "wdwda.h"
#define uchar unsigned char 定义无符号字符另外的一种写法
#define int16 unsigned int 定义无符号整型的另外的一种写法
#define roll_speed 8 //滚动速度
enum direction {up,down} dir_f; 枚举了方向的两个取值,上和下
uchar n=0;
int16 offset; 定义了一个整型的偏移量
void delay(uchar i) 延迟时间函数,至于多少则取决于你的i参数的多少
{
while(i--);
}
void T0_Initial(void) 中断的初始化,各个参数的设置你可以看一下中断寄存器的每个标志位代表什么意思,如果要知道程序是什么作用,最好还是贴全部的源码
{
TMOD=0x01;
TH0=0xb1;
TL0=0xe0;
ET0=1;
EA=1;
TR0=1;
}
C语言编程问题,求大神指教 编写程序,输入两个正整数m和n,求∑(i*i+...
s += m*m+1.0\/m;
求大佬指教这个c语言程序的计算逻辑
编译器不同,会有差异。比如我用的codeblocks的gcc,右边连加表达式,先算前两项,也就是(++a)+(++a),这里i先执行2次自增再取值,也就是算3+3。之后结果再与第三项加,也就是6+(++a),同理先自增,也就是6+4,最后mun的值是10。正常写,不要写这样一个表达式里同个变量多次自增自减...
c语言,求指教
c语言,求指教?main(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m; \/\/因为p1!=&m,所以p1==&m的值为假,即a=0 b=(-*p1)\/(*p2)+7; \/\/b=-4\/6+7=0+7=7 所以,答案是0和7。c语言诞生于美国的贝尔实验室,为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成...
C语言编程的题,求大神指教!
include<stdio.h>#include<string.h>#define max 100int main(){ int a[max][max],n,i,j; memset(a,0,max*max*4);\/\/初始化数组 scanf("%d",&n);\/\/输入构建2维数组大小 for(i=0;i<n;i++) { for(j=0;j<n;j++) { if((i+j)<n) { a[i...
一些简单的C语言题目第3弹,请高手指教!
1.程序分析:字符共有256个。不同字符,图形不一样。 2.程序源代码:#include "stdio.h"#include "conio.h"main(){ char a=176,b=219; printf("%c%c%c%c%c\\n",b,a,a,a,b); printf("%c%c%c%c%c\\n",a,b,a,b,a); printf("%c%c%c%c%c\\n",a,a,b,a,a); printf("%c%c%c...
求C语言大侠指教。。 题目:用户输入7个数字(整型),输出最大值和最小...
\/\/此题只需要最大值和最小值,所以遍历一次数组就知道了,不需要进行排序 include <stdio.h> int main(){ int i,max,min;int a[7];printf("请输入7个整数,并以空格隔开:\\n");for(i=0;i<7;i++){ scanf("%d",&a[i]);\/\/输入7个整数 } max = a[0];min = a[0];\/\/将最...
C语言初学求大神指教
因为a<b不成立 所以第一个if的子语句都不执行 你的代码就相当于这样:include <stdio.h>int main(){int a = 2, b = -1, c = 2;if (a < b){if (b < 0){c = 0;}else{c += 1;}}printf("%d\\n", c);return 0;} ...
C语言,求高手指教!
其实你的程序没有什么大的错误, 只是输出地时候main()中的printf("%s\\n",str1);和cpy()中的 printf("%c",c);输出语句重合了, 所以看到的结果总是不对, 我一开始也是很迷惑, 还是单步时发现的,晕...下面的是改好的...include<stdio.h> void main(){ void cpy(char array1[],char ...
一段C语言代码不知道错哪儿了,请高手指教
编译错误,一般是语法有问题,程序在编译是就产生错误不能编译成目标文件,比如包名或内部类名写错误等等。运行错误,就是程序通过编译,却在运行时出错,一般是逻辑上的问题,比如数组越界,空指针等等。比较常见的运行时错误是在做除法运算时所产生的“除数为零”错误。如下列 VB 代码:Dim a As ...
c语言 选择题 请高手指教
1. C 2. A include<stdio.h> main(){int a,d,i,s,f,x; \/*a是第一项*\/ for(a=1;a<30;a++) \/*用for循环查找符合题目的a的值*\/ for(d=1;【1】;d++) \/*用for循环查找符合题目的d的值*\/ { s=0;f=1;x=a;for(i=1;i<=4;i++){s=s+x; \/*求4个等...
肇邱信康: x[t]) t=i;=100;i++) sum+=i,i;stdio;nThe biggest is %d,hasing %d\n",j;%d"=765/8;i++) if(i*(Side(2,8)-1)==765) { printf("The lowest has :%d\n";=100-big;small+=2) if(3*big+2*(100-big-small)+0;n"); else printf("# include < main() { float big; ...
泽普县18984506751: c语言程序问题,程序出错,不知道怎么改,求高人指点: - ?
肇邱信康: #include第一行应该改成这样加个.h
泽普县18984506751: 求高手指教如何解决C语言的问题?
肇邱信康: 我是大三的,也是学计算机的,但是c也一直都写的不好,就说一句吧,刚开始的这些程序还都是比较简单的,你不熟悉的不过是忽然没有了以前的那种解题的感觉,程序更多是思考,写代码,改代码,完善,前期还是多看看别人的程序,多去理解别人的想法,后面会也就是水到渠成的事了.
泽普县18984506751: C语言的小问题求高人指点 - ?
肇邱信康: #include<stdio.h> int main() { int one ,tow,five; for(five=0;five<40;five++) for(tow=0;tow<100;tow++) for(one=0;one<200;one++)if ( one+tow+five==60 && one+tow*2+five*5==200) printf("一元的%d张,二元的%d张,五元的%d张\n",one,tow,five); getchar(); getchar(); }
泽普县18984506751: 请高人指点C语言问题 - ?
肇邱信康: #include<iostream>#include<cmath> using namespace std; float fun(double i) { float PI=0; for(double j=1;j<=i;j++) { PI+=4*float((1/(2*j-1))*pow(-1,j+1)); } return PI; } void main() { float PI=0; double i=1; cout<<"n=20 "<<"π="<<fun(20)<<endl; cout...
泽普县18984506751: C语言的题目求教高人?
肇邱信康: #include<stdio.h> void main() { char a[10]; int i; int num=0; int j; printf("请输入你要的字符串.输入.号退出\n"); for(i=0;i<10;i++) { scanf("%c",&a[i]); if(a[i]=='.') { num++; break; } } for(j=0;j<i-num;j++) { printf("%c",a[j]); printf(" "); } } 数组大小可以随便调!本来想创建链表的,又太麻烦了.先看看
泽普县18984506751: 请高人指点:C语言编程 - ?
肇邱信康: 大概的编码是这样的for(int i=0;i<n;i++) { if(s[i]==' ') if((s[i-1]>='a')&&(s[i-1]<='z')) s[i-1]=s[i-1]-32; }
泽普县18984506751: c语言问题急求高人解答.?
肇邱信康: 1. PR(d,x); 扩展:printf("value=%d\t",5); 结果:5 2. PRINT1(d,x); 扩展:printf("value=%d\t",5);putchar('\n'); 结果:5 3. PRINT2(d,x1,x2); 扩展:printf("value=%d\t",3);printf("value=%d\t",8);putchar('\n'); 结果:38 写法:宏定义就像数学中的复合函数,一层层带入套写即可
泽普县18984506751: 写了一个C语言的程序,是关于学生管理系统的.但是出错了...求高人指教一下 - ?
肇邱信康: 改一下这句:scanf("%d,%s,%d,%s,%d",sno,sname,sage,sprof,sclass);改成:scanf("...
泽普县18984506751: c语言小问题求高人解决!!!?
肇邱信康: 在C语言里,定义函数的时候返回值类型可以不写,默认为int,但是C++里是不行的,C++的要求比较严格,函数的返回值必须写,否则就是iso c++ forbids declaration of 'f' no type,你这里虽然写的是C,但用的是C++编译器来编译,当然要符合C++的规范.