当前位置:首页 » 编程语言 » 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);