/*
《C语言程序设计教程学习指导》p118 实验内容(1)
这是一个常用格式控制符使用示例
运行程序,观察行结果,对照每一行printf()中的格式控制符,理解其功能和用法
*/
#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);//不一致 ,f前没有加l,系统默认六位小数,但原值只有三位,由于精度问题,多了个1
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);//前两给一致只是宽度不同,后三个不同,因为s前有点,所取的位数发生变化
return 0;
}
/*
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\n",a1,a2,a3);
scanf("%c%c%c",&c1,&c2,&c3);
printf("%c%c%c\n",c1,c2,c3);
scanf("%lf,%lf",&x,&y);//双精度型数据f前要加l
printf("%lf,%lf\n",x,y);
return 0;
}
/*
《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("不能构成三角形\n");
else if(a+b>c && a+c>b && b+c>a) {
if(a==b && a==c)
printf("构成等边三角形\n");
else if(a==b || a==c || b==c)
printf("构成等腰三角形\n");
else
printf("构成一般三角形\n");
}
else
printf("不能构成三角形\n");
return 0;
}





/*
《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("不能构成三角形\n");
else if(a+b>c && a+c>b && b+c>a) {
if(a==b||a==c||b==c){
if(a==b && a==c)
printf("构成等边三角形\n");
else
printf("构成等腰三角形\n");
}
else
printf("构成一般三角形\n");
}
else
printf("不能构成三角形\n");
return 0;
}





// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串
// 输入1, 选择黑底绿色配色方案
// 输入2,选择白底黑色配色方案
// 输入3,选择蓝底黑色配色方案
// 输入其它,选择黑底白字配色方案(默认)
#include <stdio.h>
#include <stdlib.h>
int main() {
char choice;
// 显示菜单
printf("输入0~9以内的数字,选择屏幕背景色前景色方案: \n");
printf("1-\t黑底绿色\n");
printf("2-\t白底黑色\n");
printf("3-\t蓝底白色\n");
printf("其它-\t黑底白色(默认)\n");
printf("\n请输入, 选择你想使用的屏幕配色方案: ");
// 要求用户从键盘输入0~9的数字,选择屏幕配色方案
choice = getchar();
// 根据用户输入,设置屏幕配色方案
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;
}





// 功能: 从键盘上输入数字选择屏幕配色方案,打印字符串
// 输入1, 选择黑底绿色配色方案
// 输入2,选择白底黑色配色方案
// 输入3,选择蓝底黑色配色方案
// 输入其它,选择黑底白字配色方案(默认)
#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的数字,选择屏幕配色方案
choice = getchar();
// 根据用户输入,设置屏幕配色方案
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;
}





#include<stdio.h>
int main()
{
int x,y;
printf("输入三位数以内的十进制整数:\n");
scanf("%d",&x);
printf("计算其逆序数:\n");
if(x<=0||x>=1000)
{
printf("数据输入错误,请重新输入");
}
if(x>0&&x<=9)
{
y=x;
printf("%d",y);
printf("正序和逆序相同");
}
if(x>=10&&x<=99)
{
y=(x/10)%10+x%10*10;
if(y==x)
printf("正序和逆序相同");
else
printf("正序和逆序不同");
}
if(x>=100&&x<=999)
{
y=(x/10)%10*10+(x/100)%10+(x%10)*100;
if(y==x)
printf("正序和逆序相同");
else
printf("正序和逆序不同");
}
return 0;
}





#include<stdio.h>
int main()
{
int year,month,day,leapyear;
printf("输入年份 月份:\n");
scanf("%d %d",&year,&month);
if(year<=0||month<=0||month>=13)
{
printf("输入的数据错误,请重新输入;\n");
}
leapyear=year%4==0&&year%100!=0||year%400==0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
printf("%d年%d月是:31天",year,month,day);
}
if(month==4||month==6||month==9||month==11)
{
printf("%d年%d月是;30天",year,month,day);
}
if(month==2)
{
day=28+leapyear;
printf("%d年%d月是;%d天",year,month,day);
}
return 0;
}




#include<stdio.h>
#include<stdlib.h>
int main()
{
int score;
printf("输入分数;\n");
scanf("%d",&score);
if(score<0||score>100)
{
printf("分数不在有效区间内\n");
exit(0);
}
switch(score/10)
{
case 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;
}






实验总结与体会:
scanf中,若输入double型,要用%lf
scanf()的格式字符串中最好不要加入不必要的字符
if语句和switch语句差不多明白了一些东西;
使用if语句嵌套时,总是容易因{}的位置问题而出错;
输入法的切换很烦,害得我总是打错一些关键字。