-
經典C語言程序設計100例1-10
如【程序1】
題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去
掉不滿足條件的排列。
2.程序源代碼:
main()
{
int i,j,k
printf("\n")
for(i=1 i<5 i++) /*以下為三重循環*/
for(j=1 j<5 j++)
for (k=1 k<5 k++)
{
if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k)
}
}
標簽:
100
10
C語言
程序設計
上傳時間:
2013-12-14
上傳用戶:hfmm633
-
假設在一個ad hoc網絡中,移動節點的發射功率PTx總是恒定的。要發送數據的移動節點總是先監聽信道,測量接收到的信號功率X,其中X= I + N, I為接收到的干擾,N是噪聲。移動節點只有在X<INThre時,才可以發射。式中,INThre為背景噪聲門限。
在仿真中,我們規定每個移動節點的發射功率是常數,PTx = 1W;接收節點接收機的靈敏度Smin = -80 dBm;信號質量 min = 2 dB;系統的背景噪聲門限INThre = 1.2e-10。
標簽:
hoc
網絡
上傳時間:
2016-03-16
上傳用戶:sevenbestfei
-
根據有無固定基礎設施,無線局域網又可分為BSS (Basic Service Set)和IBSS (Independent Basic Service Set)。我們要研究的ad hoc網絡屬于后者。假設在一個ad hoc網絡中,移動節點的發射功率PTx總是恒定的。要發送數據的移動節點總是先監聽信道,測量接收到的信號功率X,其中X= I + N, I為接收到的干擾,N是噪聲。移動節點只有在X<INThre時,才可以發射。式中,INThre為背景噪聲門限。
在仿真中,我們規定每個移動節點的發射功率是常數,PTx = 1W;接收節點接收機的靈敏度Smin = -80 dBm;信號質量 min = 2 dB;系統的背景噪聲門限INThre = 1.2e-10。
標簽:
上傳時間:
2013-12-19
上傳用戶:頂得柱
-
河內塔問題
#include<stdio.h>
#include<stdlib.h>
int fun_a(int)
void fun_b(int,int,int,int)
int main(void)
{
int n
int option
printf("題目二:河內塔問題\n")
printf("請輸入要搬移的圓盤數目\n")
scanf("%d",&n)
printf("最少搬移的次數為%d次\n",fun_a(n))
printf("是否顯示移動過程? 是請輸入1,否則輸入0\n")
scanf("%d",&option)
if(option==1)
{
fun_b(n,1,2,3)
}
system("pause")
return 0
}
int fun_a(int n)
{
int sum1=2,sum2=0,i
for(i=n i>1 i--)
{
sum1=sum1*2
}
sum2=sum1-1
return sum2
}
void fun_b(int n,int left,int mid,int right)
{
if(n==1)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
else
{
fun_b(n-1,left,right,mid)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
fun_b(n-1,mid,left,right)
}
}
標簽:
int
include
stdlib
fun_a
上傳時間:
2016-12-08
上傳用戶:努力努力再努力
-
在0 / 1背包問題中,需對容量為c 的背包進行裝載。從n 個物品中選取裝入背包的物品,每件物品i 的重量為wi ,價值為pi 。對于可行的背包裝載,背包中物品的總重量不能超過背包的容量,最佳裝載是指所裝入的物品價值最高,即n ?i=1pi xi 取得最大值。約束條件為n ?i =1wi xi≤c 和xi?[ 0 , 1 ] [ 1≤i≤n]。
標簽:
背包問題
上傳時間:
2017-03-28
上傳用戶:6546544
-
//顏色初始化
if(!has_colors() || start_color() == ERR){
endwin()
printf("Terminal does not support color.\n")
exit(1)
}
init_pair(1, COLOR_GREEN, COLOR_BLACK)
init_pair(2, COLOR_RED, COLOR_BLACK)
init_pair(3, COLOR_CYAN, COLOR_BLACK)
init_pair(4, COLOR_WHITE, COLOR_BLACK)
init_pair(5, COLOR_MAGENTA, COLOR_BLACK)
init_pair(6, COLOR_BLUE, COLOR_BLACK)
init_pair(7, COLOR_YELLOW, COLOR_BLACK)
//寫字符串
for(i = 1 i <= 7 i++) {
attron(COLOR_PAIR(i))
printw("color pair d in normal mode\n", i)
}
for(i = 1 i <= 7 i++) {
attron(COLOR_PAIR(i) | A_BLINK | A_UNDERLINE)
printw("color pair d in normal mode\n", i)
}
標簽:
start_color
has_colors
Terminal
endwin
上傳時間:
2014-01-14
上傳用戶:vodssv
-
g a w k或GNU awk是由Alfred V. A h o,Peter J.We i n b e rg e r和Brian W. K e r n i g h a n于1 9 7 7年為U N I X創建的a w k編程語言的較新版本之一。a w k出自創建者姓的首字母。a w k語言(在其所有的版本中)是一種具有很強能力的模式匹配和過程語言。a w k獲取一個文件(或多個文件)來查找匹配特定模式的記錄。當查到匹配后,即執行所指定的動作。作為一個程序員,你不必操心通過文件打開、循環讀每個記錄,控制文件的結束,或執行完后關閉文件。
標簽:
V.
Alfred
GNU
awk
上傳時間:
2014-01-02
上傳用戶:hwl453472107
-
1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and
another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.)
標簽:
算法
排序
上傳時間:
2017-04-01
上傳用戶:糖兒水嘻嘻
-
1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and
another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.)
#include<stdio.h>
#include<stdlib.h>
void merge(int arr[],int low,int mid,int high){
int i,k;
int *tmp=(int*)malloc((high-low+1)*sizeof(int));
int left_low=low;
int left_high=mid;
int right_low=mid+1;
int right_high=high;
for(k=0;left_low<=left_high&&right_low<=right_high;k++)
{
if(arr[left_low]<=arr[right_low]){
tmp[k]=arr[left_low++];
}
else{
tmp[k]=arr[right_low++];
}
}
if(left_low<=left_high){
for(i=left_low;i<=left_high;i++){
tmp[k++]=arr[i];
}
}
if(right_low<=right_high){
for(i=right_low;i<=right_high;i++)
tmp[k++]=arr[i];
}
for(i=0;i<high-low+1;i++)
arr[low+i]=tmp[i];
}
void merge_sort(int a[],int p,int r){
int q;
if(p<r){
q=(p+r)/2;
merge_sort(a,p,q);
merge_sort(a,q+1,r);
merge(a,p,q,r);
}
}
int main(){
int a[8]={3,5,8,6,4,1,1};
int i,j;
int x=10;
merge_sort(a,0,6);
printf("after Merging-Sort:\n");
for(i=0;i<7;i++){
printf("%d",a[i]);
}
printf("\n");
i=0;j=6;
do{
if(a[i]+a[j]==x){
printf("exist");
break;
}
if(a[i]+a[j]>x)
j--;
if(a[i]+a[j]<x)
i++;
}while(i<=j);
if(i>j)
printf("not exist");
system("pause");
return 0;
}
標簽:
c語言
算法
排序
上傳時間:
2017-04-01
上傳用戶:糖兒水嘻嘻
-
# include<stdio.h>
# include<math.h>
# define N 3
main(){
float NF2(float *x,float *y);
float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};
float b[N]={7.2,8.3,4.2},sum=0;
float x[N]= {0,0,0},y[N]={0},x0[N]={};
int i,j,n=0;
for(i=0;i<N;i++)
{
x[i]=x0[i];
}
for(n=0;;n++){
//計算下一個值
for(i=0;i<N;i++){
sum=0;
for(j=0;j<N;j++){
if(j!=i){
sum=sum+A[i][j]*x[j];
}
}
y[i]=(1/A[i][i])*(b[i]-sum);
//sum=0;
}
//判斷誤差大小
if(NF2(x,y)>0.01){
for(i=0;i<N;i++){
x[i]=y[i];
}
}
else
break;
}
printf("經過%d次雅可比迭代解出方程組的解:\n",n+1);
for(i=0;i<N;i++){
printf("%f ",y[i]);
}
}
//求兩個向量差的二范數函數
float NF2(float *x,float *y){
int i;
float z,sum1=0;
for(i=0;i<N;i++){
sum1=sum1+pow(y[i]-x[i],2);
}
z=sqrt(sum1);
return z;
}
標簽:
C語言
編寫
迭代
上傳時間:
2019-10-13
上傳用戶:大萌萌撒