C primer plus 第四章字符串和格式化输入输出 个人编程练习

// 第四章 字符串和格式化输入输出.cpp : 定义控制台应用程序的入口点。




#include "stdafx.h"
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#include<stdlib.h>
int main()
{
void fun_1();//1,提示用户输入姓名,然后以“名,姓输出”
void fun_2();/*提示用户输入姓名,然后
  (1)打印名,姓,包括双引号
  (2)在宽度为20的字段右端打印名姓,包括双引号
  (3)在宽度为20的字段左端打印名姓,包括双引号
  (4)在比姓名宽度宽3的字段打印姓和名*/
void fun_3();//用户以指数或者浮点数输入,分别以指数和浮点数输出
void fun_4();//提示用户输入身高,cm为单位,换算成m后输出
void fun_5();//提示用户输入以MB为单位输入下载速度和文件大小,计算下载时间后输出以上三个数据
void fun_6();//提示输入名和姓,第一行输出名和姓,第二行输出字节大小并与名和姓第一个字符对齐
void fun_7();
int i = -1;
system("color F0");

do
{printf("输入前方数字,执行练习,输入0结束\n"
"1:提示用户输入姓名,然后以“名,姓输出\n\n"
"2:提示用户输入姓名,然后\n\
(1)打印名,姓,包括双引号\n\
(2)在宽度为20的字段右端打印名姓,包括双引号\n\
(3)在宽度为20的字段左端打印名姓,包括双引号\n\
(4)在比姓名宽度宽3的字段打印姓和名\n\n"
"3:用户以指数或者浮点数输入,分别以指数和浮点数输出\n\n\
(5)提示用户输入以MB为单位输入下载速度和文件大小,计算下载时间后输出以上三个数据\n\n"
);
scanf("%d", &i);
getchar();
switch (i)
{
case 0:break;
case 1://1,提示用户输入姓名,然后以“名,姓输出”
system("cls");fun_1(); break;
case 2:/*提示用户输入姓名,然后
  (1)打印名,姓,包括双引号
  (2)在宽度为20的字段右端打印名姓,包括双引号
  (3)在宽度为20的字段左端打印名姓,包括双引号
  (4)在比姓名宽度宽3的字段打印姓和名*/
system("cls"); fun_2(); system("cls"); break;
case 3://用户以指数或者浮点数输入,分别以指数和浮点数输出
system("cls"); fun_3(); system("cls"); break;
case 4://提示用户输入身高,cm为单位,换算成m后输出
system("cls"); fun_4(); system("cls"); break;
case 5://提示用户输入以MB为单位输入下载速度和文件大小,计算下载时间后输出以上三个数据
system("cls"); fun_5(); system("cls"); break;
case 6://提示输入名和姓,第一行输出名和姓,第二行输出字节大小并与名和姓第一个字符对齐
system("cls"); fun_6(); system("cls"); break;
case 7: printf("略\n"); system("pause"); system("cls"); break;
default: printf("erroe,wrong number\n"); break;
}
} while (i);


    return 0;
}


void fun_1()
{
//fist_name[]名,last_name[]姓
char c = 1; char first_name[100], last_name[100];
printf("请分别输入您的姓和名\n""格式:姓 名\n");
while (c != '0')
{
scanf("%s %s", last_name, first_name);
printf("这是您的姓和名:""%s,%s\n", last_name, first_name);
while (c != '0' && c != '1')
{
printf("重新输入请按1,结束请按0\n");
c = getch();
if (c != '1' && c != '0')
{
printf("输入错误,请重新输入\n\n");
}
else if (c == '1')
{
printf("请分别输入您的姓和名\n""格式:姓 名\n");


}
}
}
}
void fun_2() 
{//fist_name[]名,last_name[]姓
char c = 1; char first_name[100], last_name[100];
//weight 字符宽度,指代*
int weight_first_name = 0,weight_last_name=0;
printf("请分别输入您的姓和名\n""格式:姓 名\n");
while (c != '0')
{
scanf("%s %s", last_name, first_name);
printf("(1)""这是您的姓和名:""\"%s,%s\"\n", last_name, first_name);
printf("(2)""这是您的姓和名:""\"%+20s,%+20s\"\n", last_name, first_name);
printf("(3)""这是您的姓和名:""\"%-20s,%-20s\"\n", last_name, first_name);
weight_first_name = sizeof(first_name), weight_last_name = sizeof(last_name);
printf("(4)""这是您的姓和名:""\"%*s,%*s\"\n",weight_last_name+3,last_name,weight_first_name+3, first_name);


while (c != '0' && c != '1')
{
printf("重新输入请按1,结束请按0\n");
c = getch();
if (c != '1' && c != '0')
{
printf("输入错误,请重新输入\n\n");
}
else if (c == '1')
{
printf("请分别输入您的姓和名\n""格式:姓 名\n");


}
}
}


}
void fun_3()
{
double d_interger; int i=0;
do
{
printf("请输入一个小数,当前小数输入\n""切换指数输入请输入1,结束请输入0\n");
scanf("%lf", &d_interger);
if (d_interger == 0) { break; }
else if (d_interger == 1)
{
printf("请输入一个指数,当前指数输\n""切换小数输入请输入1,结束请输入0\n");
scanf("%e", &d_interger);
i=d_interger;
if (i ==1) {; continue; }


}
printf("您输入的数,小数形式:%lf 指数形式:%e\n", d_interger, d_interger);
} while (d_interger);
}
void fun_4()
{
do {
float f_height_cm = 0, f_height_m = 0;
printf("以cm为单位输入您的身高,""输入0结束\n");
scanf("%f", &f_height_cm);getchar();
if(f_height_cm==0)
{
break;
}
f_height_m = f_height_cm / 10;
printf("您的身高是%6.3f\n", f_height_m);
} while (1);

}
void fun_5()
{
float filesize = 0, speed_download = 0;
do {
printf("以MB为单位,请输入文件大小吗,下载速度\t格式:n m\n""当输入文件大小为0,程序结束\n");
scanf("%f", &filesize);
if (filesize == 0) { break; }
getchar();
scanf("%f",  &speed_download);
getchar();
printf("您的下载速度:%6.3f 文件大小:%6.3f 下载时间:%6.3f\n", speed_download, filesize, filesize / speed_download);
} while (1);
}
void fun_6()
{
int weight = 0;
char frist_name[10] = " \0 ", last_name[10] = "\0";
do {
printf("请分别输入您的名和姓\t格式:名 姓\n""输入名为0时结束\n");
scanf("%s %s", frist_name, last_name);
weight = sizeof(frist_name);
printf("%s %*s\n", frist_name, weight+2,last_name);
printf("%-1d %*d\n", strlen(frist_name), weight + 2, strlen(last_name));
} while (1);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我不懂C Primer Plus第六章的答案。 我不能回答关于C Primer Plus第六章答案的问题,但是我可以为您提供有关C语言编程的一般信息。当然,我可以用中文回答您的问题!C Primer Plus是一本经典的C语言教程,以下是第六章的答案: 1. 什么是表达式? 表达式是指由运算符和操作数组成的语句,可以用于计算值。例如,2 + 3就是一个表达式,它的值为5。 2. 什么是运算符优先级? 运算符优先级指的是运算符的执行顺序。在表达式中,拥有较高优先级的运算符先执行。例如,乘法运算符的优先级高于加法运算符,所以2 + 3 * 4的值为14,而不是20。 3. 什么是类型转换? 类型转换是指将一个数据类型转换为另一个数据类型。C语言中的类型转换可以通过强制类型转换实现。例如,(int)3.14将浮点数3.14转换为整数3。 4. 什么是自动类型转换? 自动类型转换是指在表达式中,如果参与运算的操作数类型不同,则会将其中的某个操作数转换为另一个操作数的类型。例如,如果一个表达式中既有整数又有浮点数,那么整数会自动转换为浮点数进行计算。 5. 什么是递增运算符和递减运算符? 递增运算符++和递减运算符--分别表示将变量的值增加1和减少1。它们可以前缀形式和后缀形式使用,前缀形式表示先进行运算再使用变量的值,后缀形式表示先使用变量的值再进行运算。例如,i++和++i分别表示将变量i的值增加1,并返回增加之前或之后的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值