实验2

part1:
#include <stdio.h> int main() { int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello, world!"; // 定义一个数组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); //不一致,计算机把float型数据转换为能识别的二进制数时,不能完全转化,会舍去一部分数值,所以在输到电脑上时,
就会不一样 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; }

  

#include <stdio.h>
int main() {
	double x,y;
	char c1,c2,c3;
	int a1,a2,a3;
	scanf("%d%d%d",&a1,&a2,&a3);
	printf("%d,%d,%d\n",a1,a2,a3);
	scanf("%c%c%c",&c1,&c2,&c3);
	printf("%c%c%c\n",c1,c2,c3);
	scanf("%lf,%lf",&x,&y);
	printf("%f,%lf\n",x,y);
	return 0;
} 

  第一个错误地方是scanf的a1,a2,a3前少了地址符;第二个错误的地方是scanf("%f,%lf",&x,&y)的%f应该改为%lf,因为规定了x为double型。

用法:

%d:规定数据格式为整型

%f:规定数据格式为浮点型

%c:规定数据格式为字符型

%5d:规定整型数据类型的长度为5位

%lf:规定数据格式为double型

%6.2f:规定字符长度为6位,小数长度为2位

数据类型为double型时必须用%lf

数据类型为长整型时必须用%ld

part2:

可以换,

#include <stdio.h>
#include <stdlib.h>
int main() {
	int choice;
	
	// 显示菜单 
	printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n");
	printf("1-\t黑底绿色\n");
	printf("2-\t白底黑色\n");
	printf("3-\t蓝底白色\n");
	printf("其它-\t黑底白色(默认)\n");
	printf("\n请输入, 选择你想使用的屏幕配色方案:    ");
	
	// 要求用户从键盘输入0~9的数字,选择屏幕配色方案 
	scanf("%d",&choice);
	
	// 根据用户输入,设置屏幕配色方案 
	if (choice ==1) {
		system("color 02");
		printf("《黑客帝国》一类的影视剧常见这种屏幕色:)\n"); 
	} 
		
	else if(choice ==2) {
		system("color f0");
		printf("大部分编辑器默认是这种配色:)\n");	
	}
		
	else if(choice ==3) {
		system("color 1f");
		printf("这是机器蓝屏故障时的不讨喜色:)\n");
	}
		
	else {
		system("color 0f");
		printf("控制台程序默认小黑窗:)\n");		
	}
		
		
	printf("programming is fun, just try@_@\n");
	
	
	return 0;
} 

  

part3:

# include<stdio.h>
int main() {
	int x;
	printf("输入数字:\n");
	scanf("%d",&x);
	if(x/100==0)
	 { if(x/10==0)
	    printf("正序和逆序相同\n");
		else if(x/10+x%10*10==x)
		printf("正序和逆序相同\n");
		 else
		  printf("正序和逆序不相同\n");
	 }
	else if(x==x/100+x%100%10*100+x%100/10*10
# include<stdio.h>
# include<stdio.h>
int main(){
	int year,month,day,leapyear;
	scanf("%d%d",&year,&month);
	if(year<0||month<1||month>12)
		printf("输入的数据错误!\n");
	else if(leapyear=year%4==0&&year%100!=0||year%400==0){
	      printf("是闰年");
		   
			if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
		        {  day=31;
		           printf("%d年%d月的天数为:%d\n",year,month,day);
		           return 0;
		        }
		    else if(month==4||month==6||month==9||month==11)
		        {day=30;
		        printf("%d年%d月的天数为:%d\n",year,month,day) ;
		          return 0;
				}
			else
			      {
				    day=28+leapyear;
			        printf("%d年%d月的天数为:%d\n",year,month,day);
				    return 0; }
		}
	else 
	{
     	printf("是平年");
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
		        {  day=31;
		           printf("%d年%d月的天数为:%d\n",year,month,day);
		           return 0;
		        }
		    else if(month==4||month==6||month==9||month==11)
		        {day=30;
		        printf("%d年%d月的天数为:%d\n",year,month,day) ;
		          return 0;
				}
			else
			    {day=28+leapyear;
			     printf("%d年%d月的天数为:%d\n",year,month,day);
				 return 0;  
	            }
	        return 0;
	    }
	} 

  

#include<stdio.h>
int main(){
	int x;
	printf("输入分数:\n");
	scanf("%d",&x);
	if(x<0||x>100){
	 printf("分数不在有效区间内");
	 }
	switch(x/10) {
	case 9:printf("优秀\n");break;
	case 8:printf("良好\n");break;
	case 7:printf("中等\n");break;
	case 6:printf("及格\n");break;
	default:printf("不及格\n");break;
               }
    return 0;
}

  

) printf("正序和逆序相同\n"); else printf("正序和逆序不相同\n"); return 0;}

  

 

实验总结与体会:

在使用循环结构的时候,大括号的配对容易弄错。有时会忘记在哪些条件语句后面应该加分号。运用循环结构解决问题的时候,不是很熟悉,导致输入的代码很长。但是当经过自己多练习几遍的时候,会让自己印象更深。而当少写地址符的时候,显示器不会显示错误,但是进行验算的时候,出现的结果会不一样,所以这个要注意。

 

posted @ 2019-11-06 06:51  梁莞周  阅读(145)  评论(3编辑  收藏  举报