本文目錄一覽:
C語言到底是什麼?
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有彙編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用範圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
C語言包括:數據類型、運算符與表達式、程序結構、順序、選擇、循環、數組、函數、預處理命令、指針、結構體與共用體、文件、位運算;。
c語言基本特性:
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
3、代碼級別的跨平台:由於標準的存在,使得幾乎同樣的C代碼可用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬件操作的場合,優於其它高級語言。
4、使用指針:可以直接進行靠近硬件的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。
c語言 報數問題
方法一:(推薦)不受人數限制,因為採用的動態分配
#include stdio.h
#include malloc.h
/*********************************************************************
*以循環隊列的數據結構實現
*時間複雜度T(n)
*採用循環隊列數據結構,使得每次對數組的訪問次數減少到最少
**********************************************************************/
int main(void)
{
//定義並初始化各種變量
int i=0,//控制變量
num=0,//人數
die=0,//報數值
front,//隊頭位置
rear,//隊尾位置
temp=0;//中間變量
do
{
printf(“\n請輸入人數(輸入小於0退出):”);
scanf(“%d”,num);
printf(“\n請輸入報數值:”);
scanf(“%d”,die);
int *cycle=(int *)malloc((num+1)*sizeof(int));//多申請一個空間,在循環過程中方便處理
//依次編號,一號元素為0,暫時閑置
for(i=0;i=num;i++)
{
cycle[i]=i;
}
//置隊頭和隊尾的位置
front=1;
rear=num;
i=1;//報數器置1,開始報數
while(front!=rear)//當隊列中元素不止一個時,循環
{
//備份出隊數據
temp=(rear+1)%(num+1);//在位置rear後預留一個位置,以免有元素入隊
cycle[temp]=cycle[front];
front=(front+1)%(num+1);//隊頭元素出隊,隊頭位置加1
//如果出隊的人報數符合條件
if(i==die)
{
i=1;//報數重新置1,開始報數
printf(“%d出隊\n”,cycle[temp]);//顯示出隊的元素
}
//如果出隊的人報數不符合條件
else
{
i++;//報數值增1
//隊尾插入剛出隊的元素
rear=(rear+1)%(num+1);
cycle[rear]=cycle[temp];
}
}
printf(“倖存者是%d\n”,cycle[front]);
free(cycle);
}while(num!=0);
return 0;
}
方法二:(按你的要求)
#include stdio.h
/*********************************************************************
*以純粹的思維方法實現
*時間複雜度T(n)
*過程繁瑣,而且也不容易理解
*********************************************************************/
void main(void)
{
int result(int *p,int n,int m);
int i=0,m=0,n=0;
int num[50];
int *p;
for(;;)
{
printf(“輸入人數和報數值:”);
scanf(“%d%d”, n, m);
for(i = 0; i n; i++)
num[i] = i + 1;
p = num;
cout”The last one is NO.”result(p,n,m)endl;
}
}
int result(int *p,int n,int m)
{
int i=0;
for(i=0;in;i++)
p[i]=i+1;
i=0; // i為每次循環時計數變量
int k=0; // k為按1,2,3…m報數時的計數變量
int die=0; // die為退出人數
while (dien-1) // 當退出人數比n-1少時(即未退出人數大於1時)執行循環體
{
if (p[i]!=0) k++; //如果編號為0,就不報數;如果編號不為0,報數加1
if (k==m) // 將退出的人的編號置為0
{
printf(“%d退出\n”,p[i]);
p[i]=0;
k=0;//重新開始報數
m++;//退出人數加1
}
i++;
if (i==n) i=0; // 報數到尾後,i恢復為0
}
while(*p==0) p++;
return *p;
}
c語言約瑟夫問題
這個你搞得這麼複雜做什麼·-。-·
int yuesefu1(int man[],int y,int die)
{
int i=0,j=0,count=0;
for(i=1;i=y;i++)
{
man[i]=1;//。。。對數組初始化
//printf(“%d”,man[i]);
}
while(county-1)
{
if(man[i]!=0)/*當前人在圈子裡*/
j++;
if(j==die)/*若該人應該退出圈子*/
{
man[i]=0;/*0表示不在圈子裡*/
count++;/*退出的人數加1*/
j=0;/*重新數數*/
}
i++;/*判斷下一個人*/
if(i==y)/*圍成一圈*/
i=0;
}
for(i=0;iy;i++)
if(man[i]!=0)
return man[i];/*返回最後一個人的編號*/
}
C語言編程,變量賦值
#includestdio.h
#includestring.h
#define NUM 6//變量數量
int main()
{
int i;
char name[NUM][10];
FILE *fp = fopen(“D:\\data.txt”, “r”);
float min, max, lad, huv, die, how, temp;
if (fp == NULL)
{
perror(“Open file failure !!\n”);
return 0;
}
for (i = 0; i NUM; ++i)
fscanf(fp, “%s”, name[i]);
for (i = 0; i NUM; ++i)
{
fscanf(fp, “%f”, temp);
if (!strcmp(name[i], “min”))
min = temp;
else if (!strcmp(name[i], “max”))
max = temp;
else if (!strcmp(name[i], “lad”))
lad = temp;
else if (!strcmp(name[i], “huv”))
huv = temp;
else if (!strcmp(name[i], “die”))
die = temp;
else if (!strcmp(name[i], “how”))
how = temp;
}
printf(“%min = %0.2f\nmax = %0.2f\nlad = %0.2f\nhuv = %0.2f\ndie = %0.2f\nhow = %0.2f\n”, min, max, lad, huv, die, how);
fclose(fp);
return 0;
}
編程語言的die exit break有什麼區別
die我只在PHP里遇到過,exit在C/C++里有,break是都有的。die是某語句遇到問題時直接讓整個程序死掉,函數括號里的是死亡提示信息,我在用的時候一般都是在數據庫中用的,mysql_connect(‘xxx’,’xx’,’xxx’) or die(“error,” . mysql_error());這樣可以顯示出來數據庫連接失敗的錯誤信息,方便我對其進行修復,exit一般都是開發人員主動的,當碰到一些東西時,如:用戶單擊了「退出」按鈕時,在按鈕的執行過程中寫exit(0);就可以關閉了。break一般都是用於循環的,在循環中如果碰到了某些不想碰到的東西或是已經循環夠了不想循環了,那可以用break來跳出循環
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287179.html