C語言的經典編程例子
【程序1】
題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去
掉不滿足條件的排列。
2.程序源代碼:
main()
{
int?i,j,k;
printf("\n");
for(i=1;i<5;i++)/*以下為三重循環*>5;i++)/*以下為三重循環*>
for(j=1;j<>
for?(k=1;k<>
{
if?(i!=k&&i!=j&&j!=k)? /*確保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
==============================================================
【程序2】
題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高
於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提
成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於
40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於
100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
1.程序分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。
2.程序源代碼:
main()
{
long?int?i;
int?bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<>
bonus=i*0.1;
else?if(i<>
bonus=bonus1+(i-100000)*0.075;
else?if(i<>
bonus=bonus2+(i-200000)*0.05;
else?if(i<>
bonus=bonus4+(i-400000)*0.03;
else?if(i<>
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
==============================================================
【程序3】
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後
的結果滿足如下條件,即是結果。請看具體分析:
2.程序源代碼:
#include?"math.h"
main()
{
long?int?i,x,y,z;
for?(i=1;i<>
{?x=sqrt(i+100);?/*x為加上100後開方後的結果*/
y=sqrt(i+268);?/*y為再加上168後開方後的結果*/
if(x*x==i+100&&y*y==i+268)/*如果一個數的平方根的平方等於該數,這說明此數是完全平方數*/
printf("\n%ld\n",i);
}
}
==============================================================
【程序4】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊
情況,閏年且輸入月份大於3時需考慮多加一天。
2.程序源代碼:
main()
{
int?day,month,year,sum,leap;
printf("\nplease?input?year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先計算某月以前月份的總天數*/
{
case?1:sum=0;break;
case?2:sum=31;break;
case?3:sum=59;break;
case?4:sum=90;break;
case?5:sum=120;break;
case?6:sum=151;break;
case?7:sum=181;break;
case?8:sum=212;break;
case?9:sum=243;break;
case?10:sum=273;break;
case?11:sum=304;break;
case?12:sum=334;break;
default:printf("data?error");break;
}
sum=sum+day;? /*再加上某天的天數*/
if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是閏年且月份大於2,總天數應該加一天*/
sum++;
printf("It?is?the?%dth?day.",sum);}
==============================================================
【程序5】
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,
然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。
2.程序源代碼:
main()
{
int?x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if?(x>y)
{t=x;x=y;y=t;}?/*交換x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交換x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交換z,y的值*/
printf("small?to?big:?%d?%d?%d\n",x,y,z);
我不懂while(1)如何用,請舉個簡單的編程例子幫我理解。
while(1){}; 就是不斷地重複執行循環體。通常,循環體內會有至少一個條件判斷語句,即,滿足什麼條件,循環結束。例如:
x=1;y=0;
while(1){
y = y + x;
x++;
if (x > 100) break;
};
printf("%d",y);
循環體裏做累加,x 從 1 開始,2,3,4,....直到 x =101 ( 滿足條件x > 100) break;
執行 break,就退出循環了。也就是借書 while(1){} 的無限循環。
有沒有關於C語言編程實例方麵的例子,小點的程序
聞名的”Hello,World!" 就是最好的實例程序,短小精幹。估計你是想知道著手學習C語言吧。
計算機編程什麼意思,各種語言什麼意思,說通俗點,最好舉點生活事例解答,不要粘貼,謝謝
用計算機編寫程序,我們所用的所有軟件,都是由很多個複雜的程序組成的,複製粘貼、刪除、開關電腦,都是依靠程序完成的。程序就是你告訴計算機一件事該怎麼做,你發出一個命令,然後計算機按照你設定的程序一步一步往下做,最終完成命令。比如你寫了一大推數字,要求找到裏麵最大的,沒有程序計算機隻能幹瞪眼,你可以編一個程序告訴計算機:你先拿第一個數字跟後一個數字比較,保留大的那個數字,再用這個數字跟後一個數字比較,保留大的,一直到全部比較完,這個過程就是程序。編寫程序需要使用計算機認識的語言,就是編程語言,並且要麵麵俱到,你用漢子或者英語寫的任何一句話,計算機都不認識,隻有專用語言才行,世界上的語言很多,我們能懂的隻有一兩種,電腦也一樣,它有自己的語言,其他的語言都不認識。
VC6.0中fun是什麼意思。舉一個編程的小例子。必給好評!!
fun不是vc的標準關鍵字,應該是自己實現的吧
哪位大神能用一個通俗易懂的例子解釋編程語言與標記語言之間的區別
最簡單的理解是, 編程語言有邏輯和行為能力, 後者沒有.
編程語言 (programming language)可以例如 c, perl, javascript
標記語言( markup language ), 有 xml, html, xhtml ( xml 和 html 的合體 )你會見到他們都是 "ml" 尾的.
標記語言的存在用來被讀取的, 例如 svg 的圖檔其實就是用 xml 寫出來的. 而其本身是沒有行為能力的. 在標記語言裏你會看到很多 < 和=""> 這些鑽括號, 這些是用來寫出 "層次" 和 "屬性" 的. 簡言之, 他是被動的
而在 編程語言 裏, 你會看到很多 if else for while print ... 這些具有邏輯性和行為能力的指令. 這是主動的.
編程中的,定義、聲明、初始化,各指的是什麼,舉例說明下
定義就是定義,比如INT A,就是定義一個A變量.函數也是.
大體就是沒有的,你造一個出來(表達不好,知道意思就行).
初始化就是你定義出來的變量,它最開始的值是多少,你得給它一個.
int a = 100; int a; a = 100; 這種就是了.
一定記得初始化,否則,有時,會遇上一些莫名其妙的問題.
主要說的是聲明,對於一個函數 void B(xxxxx){ xxxx }是這種樣子.
假如在一個頁麵中有A,B函數,A函數裏調用B函數,但是B函數是定義在A函數下麵.
就是{}包起的代碼是寫在A下麵.此時,提示找不到B函數.
就需要void B(xxxxx);複製到A的上麵去.A就知道了原來B函數是這造型.
這就叫聲明一下.
當然你也許會想,還不幹脆把代碼都搬到A上麵去,當然也行,但是當有ABCDEFG很多函數時
這些函數相互交叉調用,關係複雜時,你把誰搬上去都搞不定.
這時就把所有函數都上去聲明一通吧.
在生活中,兩者常混為一談,常聽說我在函數裏聲明了一個XX變量,其實是錯的,
是定義了一個變量,但是能知道意思就行,何必執著於對與錯.
好累,希望對你有用.................
編程中 “參數做輸出用”是什麼意思?舉例說明下
C++:?引用傳遞,?譬如
void?func(string&?a)?{...
a.assign("helloWorld");
}
調用這個函數時:
string?a("");
func(a);
//?a?此時的值為?helloWorld;
a?作為一個函數參數,?它同時具備了輸出參數的含義,?因此?“參數做輸出用”?在C++層麵可以這樣去解釋.
當然,?其他地,?指針類型都可以這樣處理,
*
Java?中,?非基本對象類型也可以這樣處理;
*
PHP中,?對參數前加?&?也可以作為引用傳遞;
*
JavaScript?函數參數為對象/數組時也可以作為形參;
*
C中,?通常是用指針來直接處理多個出參問題;
什麼是數控編程?手動編程又是什麼?最好舉個例子
數控編程就是用 專門的軟件 或 手工計算 編寫出模具的加工程序,然後在數控機床(“加工中心”“數控銑床”“線切割機”等機床)上進行加工.手動編程就是“手工計算編寫加工程序”。當然現在大多數都用專門的軟件進行編寫程序(比如“UG”“Cimatron”等編程軟件)其實編程涉及“造型”跟“編寫刀路”兩部分。“造型”是編造模具的加工形狀,“編寫刀路”就是在造型的基礎上進行編寫具體的加工程序(俗講"刀路")工作平台上的話,嗬嗬 就是前麵我提到的數控機床 給你看圖吧 (加工中心)(線切割機)還有其他的像數控車床你可以再去搜索下是什麼一種性質,我也說不上來,個人認為就是以加工模具為最終目的,嗬嗬!你是新手的話 建議你先去技校學下係統的數控編程,嗬嗬!
什麼是shell編程啊,求簡單實例
剛剛學習了新書<實用linux shell編程="">>,書寫的容易懂,第一章就回答了什麼是shell編程的問題。下麵簡單回答,僅供參考,謝謝!
1)linux 命令,你可以一條一條執行,例如,顯示日期時間命令是date,顯示當前目錄的命令是pwd,打印一句話的命令可以是echo "good morning"
2)一個腳本是包含多條命令的文本文件,命令將按照順序依次運行。例如z.sh包含4行,如下:
$ cat z.sh
#!/bin/bash
date
pwd
echo "good morning"
第一行為腳本解釋程序的位置/bin/bash, 其他行, 是命令的“堆放”
3)增加腳本執行權限:
$ chmod +x z.sh
4)運行腳本:
$ z.sh (或者./z.sh)
Mon Jan 12 15:20:32 CST 2015
/home/user
good morning
輸出有3行,分別是命令date的結果,命令pwd的結果,命令echo "good morning"的運行結果。
5)一般地,腳本不單單是幾個簡單命令的“堆放”,有判斷、分支選擇命令,循環命令,參數輸入,函數定義等等。
但是最簡單的shell腳本可以就一條命令,或者就幾個簡單命令的“堆放”。
僅供參考,謝謝!
轉載請注明出處句子大全網 » C語言的經典編程例子
實用linux>