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 語言中,如果在未知的有符號數上執行位操作,很可能會導致緩沖區溢出,從而在某些情況下導致攻擊者執行任意代碼,同時,還可能會出現出乎意料的行為或編譯器定義的行為。