错题集

Posted zytomcat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错题集相关的知识,希望对你有一定的参考价值。

 

1、关于scanf函数输入双精度实型数据时的问题

 1 //关于double类型的变量的一些小问题
 2 #include<stdio.h>
 3 int main(){
 4     double m,n;
 5     printf("enter m and n:");
 6     //用scanf函数输入双精度实型数据时,不能用"%f"格式声明,而应当用"%lf"格式声明
 7     scanf("%f%lf",&m,&n);
 8     //用printf函数输出双精度实型数据时,"%f"与"%lf"两种格式声明均可
 9     printf("m=%lf
n=%lf
",m,n);
10     printf("m=%f
n=%f
",m,n);
11     return 0;
12 }

代码运行结果

技术分享图片

 

2、因循环变量引起的运算结果错误,此错误特别隐蔽。

     当循环变量赋初值时,有多个变量设置初值时,最前面一个变量第一次定义时,后面的变量也默认定义为第一次定义,全部为局部变量。

 1 //用数组输入三个数,用函数来计算其中最大值,并输出这个数是第几个数
 2 #include<stdio.h>
 3 int main(){
 4     int max(int x,int y);
 5     int a[3],m,n;
 6     printf("enter 3 numbers:");
 7     for(i=0;i<3;i++){
 8         scanf("%d",&a[i]);
 9     }
10 
11     //在此处将循环变量定义为局部变量引起后面的m与n也变为局部变量,引起运算结果错误
12     //在此处应特别注意,此错误特别隐蔽
13   //如果在此处初始化变量,m与n也默认为新的局部变量,循环结束后的第20行打印语句中的m与n不是for循环中的数值
14     for(int i=1,m=a[0],n=0;i<3;i++){
15         if(max(m,a[i])>m){
16             m=max(m,a[i]);
17             n=i;
18         }
19     }
20     printf("The largest numberr is %d
it is the %dth number.
",m,n+1);
21 }
22 int max(int x,int y){
23     return (x>y?x:y);
24 }

代码运行结果

技术分享图片

 

以上是关于错题集的主要内容,如果未能解决你的问题,请参考以下文章

PMP错题集(1-20)

Java错题

Java入门级_测试_错题集2021-05-28 AM

java错题集

prometheus错题集

prometheus错题集