程序2 比较两个数 include <stdio h> 请根据下列算法写程序。 int maino inta,b,max;/max用来存储最大值* printf( Please input two integers:in";开始门 scanf( %d %d", &a, &b); if(a>b) 输入两整数a,b maxed b else maxed. max-a max printf( max=%d", max) return(0) 匚输出mx 结束
程序2 /*比较两个数 */ #include <stdio.h> int main() { int a, b,max;/*max用来存储最大值*/ printf("Please input two integers:\n"); scanf("%d %d",&a,&b); if(a>b) max=a; else max=b; printf(" max=%d ",max); return (0); } 开 始 输入两整数a,b a>b max=a max=b 输出max 结 束 请根据下列算法写程序
例2:判断闰年 ■从键盘上输入一个年份,然后判断这个年 份是否为闰年。 分析结果(算法) >输入year >判断year是否为国年 输出yes或mo如果y能被整除且不能被100 整除,或者year能被400整除 year是闰年, 否则 year不是闰年
例2:判断闰年 ▪ 从键盘上输入一个年份,然后判断这个年 份是否为闰年。 ▪ 分析结果(算法) ➢输入year ➢判断year是否为闰年 ➢输出yes或no 如果year能被4整除且不能被100 整除,或者year能被400整除, year是闰年, 否则 year不是闰年
分析 如果year能被4整除且不能被100整除,或者year能被400整除, year是闰年, 否则 if(year %4==0&&year%100=o)(year%400==0) year不是 (?&& printf(god is a leap year!". year) (y ea ese printf("yod is not a leap year!",year)
分析 ▪ year能被4整除且不能被100整除,或者year能被 400整除 ▪ (?)或者(?) ▪ (?且?)或者(?) ▪ (?&&?)||(?) ▪ (year%4==0&&year%100!=0)||(year%400==0) 如果year能被4整除且不能被100整除,或者year能被400整除, year是闰年, 否则 year不是闰年。 if(year%4==0&&year%100!=0)||(year%400==0) { printf(“%d is a leap year!”,year); } else { printf(“%d is not a leap year!”,year); }
结果 include <stdio. h> 输入1998,输出结果是什么? 1998%4=0不成立,然后 void main(判断闰年 1998%400==0不成立,所以, int year: 整个条件不成立,不是闰年, print( please input year:"); 注意:1998%100==0并没有判 断,这里采用了懒情求值法, scanf(%d,&year); 因为无论它是何值,第一个条 if((year %4==0&&year% 件都不可能成立了。 输入2004,会怎样? 2000%4==0成立, prn"% d is a leap year!'2-200090010咸立,所以左边 的第一个条件成立, 2004%400==0不用再判断了 else 同样是使用懒惰求值法。 输入2100,又会怎样? 不是闰年 printf("/d is not a leap year!
结果 #include <stdio.h> void main()/*判断闰年*/ { int year; printf(“please input year:”); scanf(“%d”,&year); if((year%4==0&&year%100!=0)||(year%400==0)) { printf(“%d is a leap year!”,year);/*一般要缩进*/ } else { printf(“%d is not a leap year!”,year); /*缩进与上边一致*/ } } •输入1998,输出结果是什么? •1998%4==0不成立,然后 1998%400==0不成立,所以, 整个条件不成立,不是闰年, 注意:1998%100==0并没有判 断,这里采用了懒惰求值法, 因为无论它是何值,第一个条 件都不可能成立了。 •输入2004,会怎样? •2000%4==0成立, 2000%100!=0成立,所以左边 的第一个条件成立, 2004%400==0不用再判断了, 同样是使用懒惰求值法。 •输入2100,又会怎样? •不是闰年
简单的程序测试 一次输入,得到正确的输出结果并不能说明问题, 要精心选择不同的输入,反复进行测试,才能逐 渐发现程序里的问题 程序测试分为结构测试和功能测试两类 结构测试又为分: 语句覆盖法 分支覆盖法 >条件覆盖法 >组合条件覆盖法 对于前一个例题,最好根据条件中的三个表达式 的组合,即选择2*2*2=8个输入进行程序的测试
简单的程序测试 ▪ 一次输入,得到正确的输出结果并不能说明问题, 要精心选择不同的输入,反复进行测试,才能逐 渐发现程序里的问题 ▪ 程序测试分为结构测试和功能测试两类 ▪ 结构测试又为分: ➢ 语句覆盖法 ➢ 分支覆盖法 ➢ 条件覆盖法 ➢ 组合条件覆盖法 ▪ 对于前一个例题,最好根据条件中的三个表达式 的组合,即选择2*2*2=8个输入进行程序的测试