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

来源:互联网 发布:光猫 连接端口 编辑:程序博客网 时间:2024/05/16 07:17
// 第四章 字符串和格式化输入输出.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 0
原创粉丝点击