本文目錄一覽:
- 1、用標準C語言實現Hanoi塔問題
- 2、用標準C語言編寫學生信息管理系統
- 3、C51編程時,可以使用標準C語言的所有數據類型。為什麼「編程時常用unsigned c
- 4、怎樣用標準C語言播放音樂?
- 5、使用標準C語言,將字符數組s2中的全部字符複製到在字符數組s1中。
用標準C語言實現Hanoi塔問題
#includestdio.h
int count=0;
void move(char x,int n,char z);
void hanoi(int n ,char x,char y,char z)
{
if(n==1)
move(x,1,z);
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
void move(char x,int n,char z)
{
printf(” %2i.Move disk %i from %c to %c\n”,++count,n,x,z);}
void main()
{
int n;
char x,y,z;
x=’A’;
y=’B’;
z=’C’;
scanf(“%d”,n);
hanoi(n,x,y,z);
printf(“\n”);
}
用標準C語言編寫學生信息管理系統
把我之前做的給你吧,差不多的
#includestdio.h
#includestdlib.h
#includestring.h
#include”conio.h”
#define N 50 //定義符號常量,代表學生人數最大值
int count=0; //全局變量,用於記錄數組的當前位置
struct student //定義結構體類型,代表學生信息*/
{
char name[9];
char number[10];
float math;
float english;
float physics;
float computer;
};
void input(struct student *arr); //函數聲明,輸入學生信息*/
void sort(struct student *arr); //函數聲明,按總分排序*/
void find(struct student *arr); //函數聲明,查找某位學生信息*/
void main()
{
char selmenu; //定義局部變量,用於記錄用戶選擇的功能編號*/
struct student stud[N]; //定義結構體數組,用於記錄學生信息*/
do //利用循環顯示界面*/
{
system(“cls”); //清屏函數*/
printf(“\n\n”);
printf(“歡迎使用學生管理系統\n”);
printf(“————————\n”);
printf(“學生成績管理系統 \n\n”);
printf(“1.輸入學生信息 \n”);
printf(“2.按總分進行排榜 \n”);
printf(“3.查找相應的學生信息 \n”);
printf(“4.退出學生成績管理系統 \n\n”);
printf(“請輸入功能選擇編號:”);
fflush(stdin); //清空輸入緩衝區
scanf(“%c”,selmenu); //接受用戶選擇的功能編號
switch(selmenu) //輸入不同功能編號調用相應函數來完成功能
{
case’1′:
input(stud); //調用輸入學生信息函數,參數為學生信息數組名
break;
case’2′:
sort(stud); //調用按總分排榜函數,參數是數組名
break;
case’3′:
find(stud); //調用按學號和姓名查找學生信息函數
break;
}
}while(selmenu!=’4′); //判斷是否退出
printf(“*^-^* 謝謝使用 *^-^*\n”); //輸出告別詞
printf(” 任務完成 “);
getch();
}
void input(struct student *arr) //定義輸入學生信息函數
{
char ch; //用於接收用戶指令
do //利用循環,由用戶控制輸入學生成績
{
system(“cls”);
printf(“\n輸入第%d個學生的信息:\n輸入學生姓名:”,count+1);
scanf(“%s”,arr[count].name);
printf(“\n輸入學生學號:”);
scanf(“%s”,arr[count].number);
printf(“\n輸入數學成績:”);
scanf(“%f”,arr[count].math);
printf(“\n輸入英語成績:”);
scanf(“%f”,arr[count].english);
printf(“\n輸入物理成績:”);
scanf(“%f”,arr[count].physics);
printf(“\n輸入計算機成績:”);
scanf(“%f”,arr[count].computer);
count++; //記錄當前輸入的學生資料的個數
printf(“\n是否繼續輸入(y/n)\n”);
fflush(stdin); //清空輸入緩衝區
ch=getchar();
}while(ch==’y’||ch==’Y’); //判斷用戶指令,是否繼續輸入
}
void sort(struct student *arr) //定義按總分排榜函數
{
int i,j,k; //定義循環變量i,j,最小數位置k
struct student t; //定義交換臨時變量
if(count==0) //判斷數組中學生成績是否存在
printf(“無學生成績,請先錄入學生信息\n”);
else
{
for(i=0;icount-1;i++) //用選擇法按總分對學生成績排序
{
k=i;
for(j=i+1;jcount;j++) //k為arr[i]到arr[count-1]中最小數的位置
if((arr[k].math+arr[k].english+arr[k].physics+arr[k].computer)(arr[j].math+arr[j].english+arr[j].physics+arr[j].computer))
k=j;
if(k!=i) //如果最小數不是比較數列中第一個,對調
{
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
printf(“\n總分排榜版:\n\n”);
printf(“\t姓名\t學號\t數學\t英語\t物理\t計算機\t總分\t名次\n”);
for(j=0;jcount;j++) //輸出按總分排榜後的學生成績和名次
printf(“\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-5d\n”,
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english,j+1);
}
printf(“\n回車鍵返回主程序\n”);
fflush(stdin);
getchar();
}
void find(struct student *arr) //定義查找函數
{
int j;
char name[9]; //用於接收用戶輸入的學生姓名
char number[10]; //用於接收用戶輸入的學生學號
system(“cls”); //清屏函數
printf(“\n請輸入要查找的學生資料:\n”);
printf(“\n學生姓名:”);
scanf(“%s”,name);
printf(“\n學生學號:”);
scanf(“%s”,number);
for(j=0;jcount;j++) //使用字符串比較函數查找兵書出符合條件的學生成績
{
if((strcmp(name,arr[j].name)==0)(strcmp(number,arr[j].number)==0))
{
printf(“\n\t姓名\t學號\t數學\t英語\t物理\t計算機\t總分\n”);
printf(“\t%-6s\t%-4s\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\t%-6.1f\n”,
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].physics,arr[j].computer,arr[j].math+arr[j].english);
break;
}
}
if(j=count) //如果沒找到,會從循環條件退出
printf(“\n未找到該學生紀錄,請核對後重新查找!\n”);
fflush(stdin); //清空輸入緩衝區
printf(“\n回車鍵返回\n”);
getchar();
}
C51編程時,可以使用標準C語言的所有數據類型。為什麼「編程時常用unsigned c
這體現了嵌農和碼農的價值觀區別。
嵌農會精心計算一個變量的範圍,而碼農很少這麼做,因為碼農默認的數值類型一般是int32,可以滿足日常範圍需求,甚至像Python那樣的語言自帶大整數特性,根本不用考慮範圍。然而嵌農呢,尤其是你說的c51,是個Intel祖傳8位機,本來ram就很少,當然要精心考慮變量的大小了。像int32這樣的東西太奢侈了,只能精打細算,根據現實情況精選一個範圍合適的類型。鑒於大部分情況並不需要負數,所以用unsigned類型能提高0以上的數值範圍。另外需要指出的是很多c51編譯器里int類型是16位的。所以嵌農的悲傷就在這裡,別人已經開始寫算法了,你還在研究這個變量存不存得下的問題。
C51語言,由C語言繼承而來的單片機編程語言。
和C語言不同的是,C51語言運行於單片機平台,而C語言則運行於普通的桌面平台。C51語言具有C語言結構清晰的優點,便於學習,同時具有彙編語言的硬件操作能力。對於具有C語言編程基礎的讀者,能夠輕鬆地掌握單片機C51語言的程序設計。
怎樣用標準C語言播放音樂?
用C語言播放音樂,一般需要額外的庫或者調用系統的API函數。
以Windows為例,可以通過PlaySound函數播放wav格式的音樂。示例如下:
#includestdio.h
#includewindows.h
#includemmsystem.h
#pragma comment(lib, “WINMM.LIB”)
int main()
{
PlaySound(TEXT(“1.wav”),0,SND_FILENAME); //1.wav是要播放的音樂文件
return 0;
}
如果想播放mp3音樂可以使用如下代碼。
注意:生成程序後,請在cmd中執行此程序,不要在vc/vs的IDE中運行。
#include windows.h
#include mmsystem.h
#include stdio.h
#pragma comment(lib, “Winmm.lib”)
int main(int argc, char *argv[])
{
//絕對地址形式
TCHAR fileName[]=”ganlusi.mp3″;
TCHAR shortName[MAX_PATH];
GetShortPathName(fileName,shortName,sizeof(shortName)/sizeof(TCHAR));
TCHAR cmd[MAX_PATH+10];
wsprintf(cmd,”play %s”,shortName);
mciSendString(cmd,NULL, 0, NULL);
Sleep(5 * 60 * 1000); //這裡是防止一播放就結束做的延遲
return 0;
}
使用標準C語言,將字符數組s2中的全部字符複製到在字符數組s1中。
設計思路:
1、定義2個大小相等的字符數組s1[N]和s2[N]
2、提示輸入字符數組s2,輸入字符數組s2
3、統計字符串s2的長度k
4、將字符數組s2的下標為0到k的元素賦值給s1
5、輸出字符數組s1
程序:
#includestdio.h
#define N 100
void main()
{
char s1[N],s2[N];
int i,k=0;
printf(“輸入字符數組s2\n”);
scanf(“%s”,s2);
for(i=0;s2[i]!=’\0′;i++)k++;
for(i=0;i=k;i++)s1[i]=s2[i];
printf(“%s\n”,s1);
}
結果:
輸入字符數組s2
engsing
engsing
Press any key to continue
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192824.html