1. 对于C语言编程出了错,怎么能快速找出错误呢
最直接的方法就是编译,编译后再按F4可以显示错误信息及错误位置。
如果编译通过,却运行结果异常或不理想,往往是逻辑问题,请按顺序检查,如i++写成i--,i++写成j++,++i写成i++,<=写成<,有的变量一次循环后需要重新赋值清零,在循环末尾一定要写上重新赋值语句。
2. c语言编程:输入两个正整数m和n,求其最大公约数和最小公倍数。
输入两个正整数m和n,求其最大公约数和最小公倍数。
解:程序:
#include <stdio.h>
int main()
{
int num1, num2, t,p;
printf("请输入两个正整数:");
scanf("%d,%d", &num1, &num2);//7,8
p = num1*num2;
while (t = num1%num2)//7 1 0,循环结束
{
num1 = num2; //8 7
num2 = t; //7,循环继续 1
}
p = p / num2;
printf("它们的最大公约数:%d ", num2);
printf("它们的最小公倍数:%d ", p);
return 0;
}
结果:
请输入两个正整数:3,6
它们的最大公约数:3
它们的最小公倍数:6
(2)c编程注意事项扩展阅读:
C语言编写注意事项:
1、每个程序中一定包含main()函数,尽管C语言中对函数命名没有限制。
2、printf函数永远不会自动换行,只能用 来实现,回车键进行的换行在编译中会出现错误信息。
3、在vs2008中编译,测试需要加 system("pause");来暂停dos自动退出导致的printf无法显示。
4、每行只书写一条语句,在运算符两边加上一个空格,便于阅读。
3. C语言程序设计注意事项
#include <reg52.H>
#include<absacc.h>
unsigned char code dispbitcode[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
unsigned char code dispcode[]={0xfe,0xfd,0xfb,0xf7 };//,0x99,0x92,0x82,0xF8,0x80,0x90,0x00};
unsigned char dispbuf[4]={0,0,0,0};//八通道数据待存数组
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit LED1=P3^6;
sbit LED2=P3^7;
sbit SPK=P3^5;
bit lowflag;
bit highflag;
unsigned int cnta;
unsigned int cntb;
bit alarmflag;
/***************
主程序
***************/
void main(void)
{
ST=0;//转换信号启动
OE=0;//输出允许信号
TMOD=0x12;//
TH0=216;//
TL0=216;//
TH1=(65536-4000)/256;//
TL1=(65536-4000)%256;
TR1=1;//
TR0=1;
ET0=1;
ET1=1;
EA=1;
ST=1;
ST=0;
/****************************************************
LED灯的指示,低的时候,LED2亮;高的时候LED1灭
否则LED1亮,LED2灭;
否则都亮
****************************************************/
while(1)
{
if((lowflag==1) &&(highflag==0))
{
LED1=0;
LED2=1;
}
else if((highflag==1) && (lowflag==0))
{
LED1=1;
LED2=0;
}
else
{
LED1=1;
LED2=1;
}
}
}
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
if(EOC==1)
{
OE=1;
getdata=P1;//从P0口得到数据
OE=0;
temp=getdata*25;
//temp=getdata*225;
temp=temp/64;
//i=6;
dispbuf[3]=temp/100;
dispbuf[2]=(temp%100)/10;
dispbuf[1]=(temp%10)/1;
dispbuf[0]=temp%1;
/* dispbuf[0]=0;
dispbuf[1]=0;
dispbuf[2]=0;
dispbuf[3]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp; */
if(getdata<77)
{
lowflag=1;
highflag=0;
}
else if(getdata>153)
{
lowflag=0;
highflag=1;
}
else
{
lowflag=0;
highflag=0;
}
ST=1;
ST=0;
}
P0=dispbitcode[dispbuf[dispcount]];
P2=dispcode[dispcount];
dispcount++;
if(dispcount==4)
{
dispcount=0;
}
if((lowflag==1) && (highflag==0))
{
cnta++;
if(cnta==800)
{
cnta=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
SPK=~SPK;
}
}
else if((lowflag==0) && (highflag==1))
{
cntb++;
if(cntb==400)
{
cntb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
SPK=~SPK;
}
}
else
{
alarmflag=0;
cnta=0;
cntb=0;
}
}
4. C语言找错误
*ptr得到的是悬空指针,你不能对里面的值修改,因为你不知道它存在哪。
正确改法:char ptr[10]="Linux";
满意请采纳谢谢。
5. C语言编程题:从键盘输入一个小写字母,在屏幕上显示其对应的大写字母
#include<stdio.h>
int main()
{
char ch;
printf("请输入一个小写字母:");
scanf("%c",&ch);
ch=ch-32;
printf("大写字母是:%c ",ch);
return 0;
}
可以加一个判断
#include<stdio.h>
int main()
{
char ch;
printf("请输入一个小写字母:");
scanf("%c",&ch);
while(!(ch>='a'&&ch<='z'))
{printf("输入错误,请重新输入一个小写字母!");
scanf("%c",&ch);
}
ch=ch-32;
printf("大写字母是:%c ",ch);
return 0;
}
文件输入/输出
在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。
标准输入/输出
有三个标准输入/输出是标准I/O库预先定义的:
stdin标准输入
stdout标准输出
stderr输入输出错误
以上内容参考:网络-c语言
6. 学习C语言需要注意什么
如果你是计算机专业的C语言学习,我建议你首先学习C语言的编程思想。高校中的C语言开课初衷也是为了让学生更快的熟悉计算机软件中最底层的思想。C语言学得很浅,学完指针和结构体之后应该就不会再讲了,文件操作当年就被我老师忽略掉,考试也不会考。 个人感觉大学中的C语言,你能把循环、判断之类基本语句和指针、结构体都弄明白,应该算是个合格的优秀学生了,呵呵。如果你所在为一所普通高校,老师不会奢求你完全弄明白指针和结构体。但这两个确实很重要,建议你对自己严格要求。最好能把老师上课讲的小程序都弄明白,自己课下多练习,一定要重视最后的实验。高校中的C语言课程并不难,加油吧 总之要多看多练,加油
7. 在C语言编程中应该注意哪些问题
只要经常敲代码,做题目。如果你还有问题,那你就找我,其实很容易学的,只要你自己用心。同时我要告诉你语言基础很重要。
8. 简述C语言中函数的形式参数定义时的注意事项 求解...
1、形参个数不能太多,多了就用结构体指针吧;
2、不需要携带数据返回的放在前面,需要携带数据返回类型的放在后面吧;
3、不要直接传递结构体哦;
4、一般地,指针类型最好加上const修饰,除非有特殊用途;
5、尽量不要使用bool类型做为形式参数;
6、别忘了给一个简洁好听的名字
9. 输出100以内的质数,用c语言编写
摘要 #include
10. c语言的注意事项
在 C 语言中,如果在未知的有符号数上执行位操作,很可能会导致缓冲区溢出,从而在某些情况下导致攻击者执行任意代码,同时,还可能会出现出乎意料的行为或编译器定义的行为。