當前位置:首頁 » 編程語言 » c語言容錯設計方法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言容錯設計方法

發布時間: 2022-09-19 20:36:08

c語言 冒泡排序,希望高手能發段代碼,要有容錯功能,就是能判斷輸入的是不是數字並提示重新輸入

樓主你好
具體代碼如下:
#include<stdio.h>
#define MAX 40
int main()
{
char judge='y';
while(judge=='y')
{
int a[MAX];
int i=0,j;
int n;

do{
int flag;
printf("輸入第%d個數:",i+1);
flag=scanf("%d",a+i);
while(flag!=1)
{
printf("輸入錯誤!\n"
"請重新輸入:");
flag=scanf("%d",a+i);
}
i++;
getchar();
}while(getchar()!='#');//在這里輸入# 退出輸入

n=i;
for(i=0;i<n;i++)//冒泡排序
{
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}

printf("冒泡排序後:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
printf("還想繼續嗎?(y/n):");
getchar();
judge=getchar();//輸入y 繼續輸入和排序
}
return 0;
}

輸入實例:
輸入第1個數:4
--------->這里我輸入的是回車
輸入第2個數:5
--------->這里我輸入的是回車
輸入第3個數:3
# --------->這里我輸入的是#
冒泡排序後:
3 4 5
還想繼續嗎?(y/n):n --------->這里我輸入的是n 表示no 不繼續了

希望能幫助你哈
(ps:當你輸入錯誤的時候 會提示你輸入錯誤 然後重新輸入的 這里我沒有顯示 lz自己運行吧^-^)

㈡ c語言中"結構化程序設計方法」的基本思想和規則

C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。
C源程序的結構特點
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。
4.源程序中可以有預處理命令(include
命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。
6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫程序時應遵循的規則
從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時
應遵循以下規則:
1.一個說明或一個語句佔一行。
2.用{}
括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

㈢ 一個C語言程序中的容錯功能的問題

scanf("%c",&a);讀入字元時,' '被留在輸入緩沖區,下次再讀入a時,會將這個' '讀入,這個' '既不是'y'或'Y',也不是'n'或'N',這就是執行兩次

else{
flag=0;
printf("您的輸入有誤!請重新輸入! ");
}

的原因。

既然你提到了健壯性,我建議你將鍵盤回答的內容讀到足夠長的char數組中,如char a[15],用系統函數fgets(a,15,stdin);讀入a,緊跟著一句fflush(stdin); 然後根據第一個字元,進行處理即可。

㈣ 設計和調試c語言需要哪四個階段

最先是分析需求,設計程序,編輯程序,調試程序,這四個階段。

㈤ C語言結構化程序設計的思想和方法原則是什麼

設計思想:

結構化程序設計的總體思想是採用模塊化結構,自上而下,逐步求精。即首先把一個復雜的大問題分解為若干相對獨立的小問題。

然後,對每個小問題編寫出一個功能上相對獨立的程序塊(模塊)。最後將各程序塊進行組裝成為一個完整的程序。

方法原則:

1、只採用三種基本的程序控制結構來編製程序,從而使程序具有良好的結構;

2、程序設計自頂而下;

3、用結構化程序設計流程圖來表示演算法。

(5)c語言容錯設計方法擴展閱讀:

設計方法

1、自頂向下

程序設計時,應先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。

2、逐步細化

對復雜問題,應設計一些子目標作為過渡,逐步細化。

3、模塊化

一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。

優缺點:

1、優點

由於模塊相互獨立,因此在設計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。

模塊的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模塊作積木式的擴展。

2、缺點

用戶要求難以在系統分析階段准確定義,致使系統在交付使用時產生許多問題。用系統開發每個階段的成果來進行控制,不能適應事物變化的要求。

㈥ 用c語言編寫一個猜數字游戲,有一定的容錯功能,界面友好,功能齊全。

# include <stdio.h>

void ss(int * b,int aa)
{
int i;
b[0]= aa/1000;
b[1]= aa/100 -b[0]*10;
b[2]=aa/10-b[0]*100-b[1]*10;
b[3]=aa%10;
//for (i=0;i<4;i++)
//printf("%d\n",b[i]);
}
int main (void)
{
int aa;
int i;
int j;
int a1=0,b1=0;
int bb=1234;
int a[4];
ss(a,bb);
int b[4];
while(1)
{
printf("請輸入一個每位各不同四位數\n");
scanf("%d",&aa);
a1=0;
b1=0;
ss(b,aa);
for (i=0;i<4;i++)
{

if(a[i]==b[i])
{
b1++;
}
for(j=0;j<4;j++)
{
if(a[i]==b[j])
{
a1++;
break;
}
}

}

if(b1==4)
{
printf("%dA%dB",a1,b1);
printf("恭喜你猜對了,這個數是%d",bb);
break;

}

printf("很遺憾這次沒猜對,提示:%dA%dB\n",a1,b1);
}

}

㈦ C語言程序設計:c=m!/(n!*(m-n)!)

C(n,m)=n!/(m!*(n-m)!),C(n,m)=p1a1-b1-c1p2a2-b2-c2…pkak-bk-ck,n<=10,000,000

[cpp]

#include<cstdio>

constintmaxn=1000000;

#include<vector>

usingnamespacestd;

boolarr[maxn+1]={false};

vector<int>proce_prim_number()

{

vector<int>prim;

prim.push_back(2);

inti,j;

for(i=3;i*i<=maxn;i+=2)

{

if(!arr[i])

{

prim.push_back(i);

for(j=i*i;j<=maxn;j+=i)

arr[j]=true;

}

}

while(i<maxn)

{

if(!arr[i])

prim.push_back(i);

i+=2;

}

returnprim;

}

//計算n!中素數因子p的指數

intcal(intx,intp)

{

intans=0;

longlongrec=p;

while(x>=rec)

{

ans+=x/rec;

rec*=p;

}

returnans;

}

//計算n的k次方對m取模,二分法

intpow(longlongn,intk,intM)

{

longlongans=1;

while(k)

{

if(k&1)

{

ans=(ans*n)%M;

}

n=(n*n)%M;

k>>=1;

}

returnans;

}

//計算C(n,m)

intcombination(intn,intm)

{

constintM=10007;

vector<int>prim=proce_prim_number();

longlongans=1;

intnum;

for(inti=0;i<prim.size()&&prim[i]<=n;++i)

{

num=cal(n,prim[i])-cal(m,prim[i])-cal(n-m,prim[i]);

ans=(ans*pow(prim[i],num,M))%M;

}

returnans;

}

intmain()

{

intm,n;

while(~scanf("%d%d",&m,&n),m&&n)

{

printf("%d ",combination(m,n));

}

return0;

}

(7)c語言容錯設計方法擴展閱讀

C語言N項規律數和

#include"stdio.h"

#include"stdlib.h"

main()

{

intk=1,m=2;

intn,i,j;

scanf("%4d",&n);

j=1;

printf("%4d",k);

for(i=1;i<n;i++)

{

if(k==m)

{

j=-1;

m=m+1;

}

elseif(k==1)

{

j=1;

k=k+j;

printf("%4d",k);

}

printf(" ");

}

}

㈧ c語言中什麼是"容錯處理"

這個不是具體的技術,大概就是讓程序在數據出錯時不會崩壞,告訴用戶數據出錯了。比如在輸入用戶生日時,如果用戶輸入了13月32日,那麼程序要通知用戶「請輸入正確的生日」,這個就是容錯處理。如果不做這個處理的話,程序可能因為月份是13月而直接卡死 或者 真的把生日填成了13月。

㈨ C語言中輸入數字時卻輸入了字母的容錯問題

do
{
printf("請選擇你需要操作的步驟(1--9):\n");
if(!scanf("%d",&n))
{
printf("\n您輸入有誤,請重新選擇!\n");
fflush(stdin); flag = 0;
}
if(n>=1 && n<=9) /*判斷輸入數字的合法性*/
{
flag = 1;break;
}
break;//<---------------這里有個break,當然只能一次
}while(flag == 0);