实验二
Posted qzc861122
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二相关的知识,希望对你有一定的参考价值。
Part1
一、部分变量的值与代码中赋给变量的初始值不一致。
分析解释:
//输出123.456001是计算机中采用二进制,输入数只能转化为二进制数存储,输出时就不能将原本的十进制123.456输出;
//输出123.5是%8.1f保留一位小数;
//2e是用科学计数法表示且保留小数点后两位;
//%lf指长整数,保留小数点后六位。
二、找出错误,运行程序。
/* C语言程序设计教程学习指导》p119 实验内容(2) 这是一个格式化输入输出函数及格式符使用练习 找出两处错误,修改并运行程序 为a1,a2,a3,c1,c2,c3,x,y输入数据,使得: a1=1,a2=2,a3=3,c1=‘a‘,c2=‘b‘,c3=‘c‘, x=1.5, y=2.5 */ #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 ",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c ",c1,c2,c3); scanf("%lf,%lf",&x,&y); printf("%lf,%lf ",x,y); return 0; }
// 第一个scanf中a1,a2,a3缺少地址符 &
//“%f”f前缺少l
//“%f”f前缺少l
Part2
一、三角形类型问题
/* 《C语言程序设计教程学习指导》p122 实验内容(1):判断三角形类型:一般三角形、等腰三角形、等边三角形 这是一个使用多分支if语句编程解决非数值类问题示例 运行程序,输入不同边长数据进行测试,观察输出结果是否正确,理解和巩固if语句功能和用法 */ #include <stdio.h> int main() { double a,b,c; scanf("%lf %lf %lf", &a, &b, &c); if(a<0 || b<0 || c<0) printf("不能构成三角形 "); else if(a+b>c && a+c>b && b+c>a) { if(a==b || a==c || b==c) { if(a==b&&a==c) printf("构成等边三角形 "); else printf("构成等腰三角形 "); } else printf("构成一般三角形 "); } else printf("不能构成三角形 "); return 0; }
二、屏幕配色方案问题
// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串 // 输入1, 选择黑底绿色配色方案 // 输入2,选择白底黑色配色方案 // 输入3,选择蓝底黑色配色方案 // 输入其它,选择黑底白字配色方案(默认) #include <stdio.h> #include <stdlib.h> int main() { int choice; // 显示菜单 printf("输入0~9以内的数字,选择屏幕背景色前景色方案: "); printf("1- 黑底绿色 "); printf("2- 白底黑色 "); printf("3- 蓝底白色 "); printf("其它- 黑底白色(默认) "); printf(" 请输入, 选择你想使用的屏幕配色方案: "); // 要求用户从键盘输入0~9的数字,选择屏幕配色方案 scanf("%d",&choice); // 根据用户输入,设置屏幕配色方案 if (choice == 1) { system("color 02"); printf("《黑客帝国》一类的影视剧常见这种屏幕色:) "); } else if(choice == 2) { system("color f0"); printf("大部分编辑器默认是这种配色:) "); } else if(choice == 3) { system("color 1f"); printf("这是机器蓝屏故障时的不讨喜色:) "); } else { system("color 0f"); printf("控制台程序默认小黑窗:) "); } printf("programming is fun, just try@_@ "); return 0; }
Part3:编程练习
一、正逆序问题
#include<stdio.h> int main(){ int a,b,c,d; printf("请输入一个三位以内的十进制整数:"); scanf("%d",&a); printf("计算其逆序数... "); b=a/10; c=a%10; d=a/100; if(a<0||a>999) printf("数据错误"); else if(a>=0&&a<10) printf("%d正序和逆序相同",a); if(a>=10&&a<100&&b==c) printf("%d正序和逆序相同",a); else if(a>=10&&a<100&&b!=c) printf("%d正序和逆序不同",a); if(a>=100&&a<1000&&c==d) printf("%d正序和逆序相同",a); else if(a>=100&&a<1000&&c!=d) printf("%d正序和逆序不同",a); return 0; }
二、日期问题
#include<stdio.h> int main(){ int a,b; printf("输入年份 月份: "); scanf("%d %d",&a,&b); if(b<1||b>12) printf("数据错误"); else{ if(a%4==0&&a%100!=0||a%400==0){ if(b==1||b==3||b==5||b==7||b==8||b==10||b==12) printf("%d年%d月是31天",a,b); else if(b==2) printf("%d年%d月是29天",a,b); else printf("%d年%d月是30天",a,b); } else{ if(b==1||b==3||b==5||b==7||b==8||b==10||b==12) printf("%d年%d月是31天",a,b); else if(b==2) printf("%d年%d月是28天",a,b); else printf("%d年%d月是30天",a,b); } } return 0; }
三、分数等级问题
#include<stdio.h> #include<stdlib.h> int main(){ int a,b; printf("输入分数(0~100):"); scanf("%d",&a); if(a<0||a>100){ printf("分数不在有效区间内 "); exit(0); } b=a/10; switch(b){ case 1: case 2: case 3: case 4: case 5:printf("不及格 ");break; case 6:printf("及格 ");break; case 7:printf("中等 ");break; case 8:printf("良好 ");break; case 9: case 10:printf("优秀 ");break; } return 0; }
以上是关于实验二的主要内容,如果未能解决你的问题,请参考以下文章