c語言排班
1. c語言中的縮進的是什麼意思
c語言中的縮進的是代碼與頁面邊緣的距離,這樣可以提高代碼的可讀性。
縮排是一種縮進的排版方式。當連續兩行中,後一行在邏輯上是出於下層,則後一行首字元應當比前一行推後幾個字元位置,一般是4位元組。
縮進程序化設計的規范化的一種形式,是格式問題,不縮進不影響程序的編譯與運行。縮進的好處在於使代碼條理清晰易於閱讀,便於理解程序結構,過程。
(1)c語言排班擴展閱讀
1、第二個return a 縮進了2格,沒有頂格寫
if(a>b)
return a;
如果寫成
if( a > b)
return a;
2、縮進,例:
for(i = 0; i < student_num; i++);
{ if((score[i] >= 0) && (score[i]) <= 100)
total_score += score[i];
else
printf(" error! score[%d] = %d ", i, score[i]);
}
2. 代碼編程規范-排版風格,提升你代碼逼格的小技巧
代碼編程規范的排版風格是提升代碼整潔度和可讀性的重要手段。它主要包括七個核心要素:縮進、空行、代碼塊結構、空格對齊、成對符號、對齊規則以及注釋的使用。
縮進是編程的基本要求,通常使用4個空格(或1個製表符,但推薦使用空格以保持跨平台一致性),通過縮進使代碼層次分明,區分代碼塊和內部代碼。
空行的作用在於分隔代碼段,雖然不會佔用實際內存,但有助於清晰地劃分程序邏輯,使代碼更易於理解。
無論代碼行數多少,都應該使用{}包裹,遵循對齊原則,避免因為遺漏而產生的錯誤。寬屏環境下,可以調整代碼寬度提示線。
成對的符號如括弧需完整書寫,以減少遺漏,嵌套代碼時尤其重要。對齊規則如大括弧{}的使用,有助於保持整體結構的一致性。
注釋是解釋代碼的工具,C語言中單行注釋用//,多行用/*...*/。注釋量應保持在20%左右,過多的注釋會分散閱讀者注意力。
推薦使用開源的Astyle源碼格式化工具,如集成在KEIL、IAR或文本編輯器中的Astyle插件,通過指令`--style=allman -t -xV -C -f -p -H -k3 -y -xb -j -U %f`來自動格式化代碼,如圖所示。
3. c語言單詞排序
程序第一次運行時,會創建一個「word.txt」(不包括引號)的文本文件,然後要求輸入單詞。若要退出,請不要點DOS窗口的小叉叉,輸入d即可。因為程序在結束之前,對數組中的單詞重新排序,並存儲到文件中。 #include "stdio.h"---
#include "stdlib.h" ---為exit()函數提供原型; #include "string.h"---字元串處理函數原型; #include "ctype.h"---字元處理函數原型; #define ROWS 256
#define COLS 32---定義「字典」的大小:可存放256個單詞,每個單詞的長度不超過31
static FILE *fp;---定義文件指針:內部鏈接,文件作用域;
static char a[ROWS][COLS];---定義數組:內部鏈接,文件作用域;該數組的作用是將文件的內容復制進來,並加以處理。因為處理數組比處理文件方便。
char get_option(void);---接收用戶的選項,防止誤操作。若輸入「a;」(不包括引號),那麼將視為選項a
int b(int count);---完成選項b的作用--接收新單詞;
void c(char *pt[], int count);---完成選項c的作用--通過指針對數組排序,實際數組元素位置未改變;
int check(char arr[], int count);---對輸入的單詞進行分辨,若輸入 ni hao ,將視為單詞 ni ,並且提示並剔除重復的單詞;
void storage(char *pt[], int count);---在程序結束之前重新排序存儲數組中的單詞到文件中。
#include "stdio.h" #include "stdlib.h" #include "string.h" #include "ctype.h" #define ROWS 256 #define COLS 32 static FILE *fp;
static char a[ROWS][COLS]; char get_option(void); int b(int count);
void c(char *pt[], int count); int check(char arr[], int count); void storage(char *pt[], int count); int main(void) {
int i,count; int start;
char *pt[ROWS]; char ch, len; char input;
if((fp=fopen("words.txt","a+"))==NULL) {
fputs("不能打開或建立文件!\n",stderr); exit(1); }
fseek(fp,0L,SEEK_END); start=(int)ftell(fp)/32; count=start; rewind(fp);
if(fread(a,32*sizeof(char),start,fp)==0) { i=0;
puts("開始創建詞庫");
puts("請輸入單詞(每行一個)");
puts("在新行輸入END結束輸入:"); while(i<ROWS&&scanf("%s", a[i])==1) {
fflush(stdin);
if(strncmp(a[i],"END",3)==0) {
count+=i; break;
}
if(check(a[i], i)) continue; i++; } }
puts("\t\t*********************歡迎使用字典排版系統*******************\n\n");
puts(" MENU "); puts("您要做些什麼?");
puts("a. 顯示已有的單詞 b. 添加新單詞"); puts("c. 對已有的單詞進行排序 d. 退出");
puts("\n\n\t\t**********************************************************\n"); while((input=get_option())!='d')
{
if(input=='a') { puts("已有的單詞:"); for(i=0;i<count;i++)
{
printf(" "); puts(a[i]); } }
if(input=='b')
{
puts("開始創建詞庫");
puts("請輸入新的單詞(每行一個)"); puts("在新行輸入END結束輸入: "); count=b(count); }
if(input=='c') {
puts("對單詞進行排序:"); c(pt, count);
for(i=0;i<count;i++) {
printf(" "); puts(pt[i]); } }
puts("還要做些什麼?"); }
storage(pt,count); fclose(fp);
puts("謝謝使用,再見!");
return 0; }
char get_option(void) {
char ch;
while((ch=getchar())<'a'||ch>'d') {
while((ch=getchar())!='\n') ;
puts("請輸入a,b,c或者d."); }
fflush(stdin);
return ch; }
int b(int count) { int i;
i=count;
while(i<ROWS&&scanf("%s", a[i])==1) {
fflush(stdin); if(check(a[i], i)) continue;
if(strncmp(a[i],"END",3)==0) {
count=i; break; } i++; }
return count; }
void c(char *pt[], int count) { int i,j;
char *temp;
for(i=0;i<ROWS;i++) pt[i]=a[i];
for(i=0;i<count;i++) for(j=i+1;j<count;j++) {
if(strcmp(pt[i],pt[j])>0) {
temp=pt[i]; pt[i]=pt[j]; pt[j]=temp; } } }
int check(char arr[], int count) { int i;
int flag=0;
for(i=0;i<strlen(arr);i++) if(isalpha(arr[i])==0) {
printf("%s不是一個單詞.\n",arr); flag=1; break; }
for(i=0;i<count;i++)
if(strncmp(a[i],a[count],strlen(a[count])+1)==0) {
puts("重復的單詞!"); flag=1; }
return flag; }
void storage(char *pt[], int count) { int i,j;
char ptr[ROWS][COLS];
c(pt, count);
for(i=0;i<count;i++)
for(j=0;pt[i][j]!='\0';j++) ptr[i][j]=pt[i][j];
fp=fopen("words.txt","w+"); rewind(fp);
fwrite(ptr,32*sizeof(char),count,fp); }