实验二

//实验2.1
#include<stdio.h>
int main(){
    int a=5,b=7,c=100,d,e,f;
    d=a/b*c;
    e=a*c/b;
    f=c/b*a;
    printf("d=%d,e=%d,f=%d\n",d,e,f);
    return 0; 
} 

d等于a除以b再乘c,e等于a乘c再除b,f等于c除以b再乘a;计算结果不同是因为计算过程不同

2.

 //实验二.2
#include<stdio.h>
int main(){
    int x=1234;
    float f=123.456;
    double m=123.456;
    int ch='a';
    char a[]="Hello World!";
    int y=3,z=4;
    printf("%d %d\n",y,z);
    printf("y=%d,z=%d\n",y,z);
    printf("%8d,%2d\n",x,x);
    printf("%f,%8f,%8.1f,%0.2f,%.2e\n",f,f,f,f,f);
    printf("%lf\n",m);
    printf("%3c\n",ch);
    printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
    return 0;

} 

 

可以再%后加数字来限制宽度,对于浮点型数据加.数字限制s数值小数点后的位数即精度并可与宽度同时限制,如%8.2f

3.

 

//实验二.3  
#include<stdio.h>
int main(){
    float x,y;
    char c1,c2,c3;
    int a1,a2,a3;
    
    scanf("%d%d%d",&a1,&a2,&a3);
    printf("a1=%d,a2=%d,a3=%d\n",a1,a2,a3);
    scanf(" %c%c%c",&c1,&c2,&c3);
    printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);
    scanf(" %f%f",&x,&y);
    printf("x=%.1f,y=%.1f\n",x,y);   
    return 0;
}

 

4.

#include<stdio.h>
int main(){
char x;
x=getchar();
if(x>=48&&x<=57)
printf("%c是数字字符\n",x);
else if(x>=65&&x<=90||x>=97&&x<=122)
printf("%c是英文字母\n",x);
else if(x<65||x>=91&&x<=96)
printf("%c是其他字符\n",x);
return 0;

}

 

5.

#include<stdio.h>
int main(){
    char ans1,ans2;
    printf("复习了没?(输入y或Y表示复习了,输入n或N表示没复习)");
    ans1=getchar();
    getchar(); 
    printf("\n动手敲代码了没?(输入y或Y表示敲了,输入n或N表示木敲)");
    ans2=getchar();
    
    if(ans1==89&&ans2==89||ans1==121&&ans2==121)
    
        printf("\n罗马不是一天建成的:)\n");
    else
        printf("\n罗马不是一天毁灭的。。。\n"); 
    return 0;
      
} 

 

6.

#include<stdio.h> 
#include<math.h>
int main(){
    int a1=1,q=2,s,n; 
    scanf("%d/n",&n);
    s=a1*(1-pow(q,n))/(1-q); 
    printf("n=%d时,sum=%d",n,s);
return 0;
}

 

7.

int main(){
    while(1){
        printf(" o\n");
        printf("<H>\n");
        printf("I I\n");
    }
return 0;
}

 

通过本次实验,我了解了整型变量,实型变量等,认识并体会到while的用法,让我进一步感受到了c语言的魅力。

同时,我了解了是scanf的用法和注意事项:

1.变量前需要输入&2.当有多个数据要输入时,对于整形,浮点型等数值型数据用空格,回车,tab作为分隔符;如scanf("%d%d%d",&a1,&a2,&a3)则三者皆可,而scanf("%d,%d,%d",&a1,&a2,&a3)则必须用逗号做分隔符,

输完后敲回车;类似scanf("a1=%d,a2=%d,a3=%d",&a1,&a2,&a3)普通字符都要原样输入,输完后敲回车。3.输入字符型数据时,回车空格,tab,转义字符将作为有效字符输入。因此,

输入多个字符型数据时%c要连续输入(输入数值型数据时可以连续可以不连续),如scanf("%c%c%c”,&a1,&a2,&a3),输入时为abc再敲回车,abc分别赋给a1,a2,a3,得到abc,

若敲空格等其他字符可被当作有效的字符输入,将其赋给a2;4.输入数据时系统遇到空格,tab,回车或遇到宽度结束作为分隔符或遇到非法输入时会认为输入结束;如scanf("%3d",&a),若输入12345,只会得到123;

如scanf("%d%c%f",&a,&b,&c),若输入123a 123o.26(字符型数据和数值型数据混合输入)则得到a的值为123,b的值为a,c的值为123.000000(系统遇到非法输入o时认为输入结束)。

5.和printf相比,scanf在输入long型数据时格式符必须使用%ld;double型数据输入时格式符必须使用%lf;scanf中很少用\n;6.scanf对于浮点型数据可以能指定数据宽度,不能指定数据精度,如%5.2f不对,而%5f对;

如scanf("%4d%2d%2d",&y,&m,&n),输入20490101,则得到y=2049,m=1,n=1;如scanf("%3c%2c",&c1,&c2),若输入abcde,则得到'a','d'(一个字符变量只能存放一个字符);7.scanf可用修饰符*跳过相应数据,

如scanf("%4d%*4d%4d",&major,&no),若输入201983300912,得到2019,912(8330被跳过)。

问题:对于scanf的用法和注意事项掌握不熟。

。 

posted @ 2020-11-05 23:33  salaheihei  阅读(175)  评论(1编辑  收藏  举报