c语言百日刷题第七天-创新互联
终于一周了!战线有点小长哈哈....继续加油!!!
创新互联成立与2013年,先为七星关区等服务建站,七星关区等地企业,进行企业商务咨询服务。为七星关区企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
目录
1.模拟用户登录功能
2、随便定义一个字符数组,然后在当前数组中把字符串逆序
3、编写一个递归函数,求10以内的阶乘
4.求一个数的反序数,也称为镜面数。例如1234的反序数是4321
5、计算器——函数封装
1.模拟用户登录功能
题目:1,编写程序,模拟用户登录功能
1.1 提示用户输入用户名和密码
1.2 输入密码时要实现掩码功能,比如输入密码为123456的时候, 显示 * *****,同时能具备按删除键能够删除的功能。
题目分析:此题关键在于如何删除,即如何对显示的字符进行退格“\b \b"注意中间要加上空格;
第二个问题就是字符需要一个一个输入,而且要保证真实感,即不用输入一个字符按一次回车,这里使用_getch,下面是关于_getch的介绍:当用户按下某个字符时,函数自动提取,无需按回车;第三个就是回车的判断,因为windows输入Enter,会产生两个转义字符\r\n,所以_getch会返回13(\r),\n无法读取,所以无法判断,因此可以通过第一个转义字符来判断
#include#include#include#includeint main()
{
int i = 0;
char c;
char user[10], _code[255]={0};
printf("请输入用户名:");
scanf("%s", user);
printf("请输入密 码:");
while (true)
{
c = _getch();
if (c == '\r')
{
_code[i] = '\0';
break;
}
else if (c == '\b') {
if (i >0)
{
i--;
//对显示的字符进行退格操作
printf("\b \b");
_code[i] = '\0';
continue;
}
}
else {
//没有换行和删除,则进行存储
printf("*");
_code[i] = c;
i++;
}
}
//输出
printf("\n用户的密码为:%s\n", _code);
return 0;
}
2、随便定义一个字符数组,然后在当前数组中把字符串逆序#includeint main(int argc,char* argv)
{
int j = 0;
char c;
char _ch[100]={0};
while ((c = getchar()) != '\n' && j< 100)
{
_ch[j] = c;
j++;
}
while (j>=0) {
putchar(_ch[j]);
j--;
}
return 0;
}
3、编写一个递归函数,求10以内的阶乘#includeint factorial(int n) {
if (n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main(int argc, char* argv)
{
int n;
scanf("%d", &n);
printf("%d", factorial(n));
return 0;
}
4.求一个数的反序数,也称为镜面数。例如1234的反序数是4321#include#includeint mirror(int x) {
int m, n, i, j, k;
m = n = i = j = k = 0;
m = x;
while (m >0)
{
m /= 10;
n++; //判断位数
}
while (x >0)
{
i = x % 10;
j= i * pow(10, n - 1);
x /= 10;
k += j;
n--;
}
return k;
}
int main(int argc, char* argv)
{
int num;
scanf("%d", &num);
printf("%d\n",mirror(num));
return 0;
}
5、计算器——函数封装#includevoid _add(double a, double b);
void minus(double a, double b);
void multiply(double a, double b);
void _remove(double a, double b);
void mod(double a, double b);
int main(int argc, char* argv)
{
double num1, num2;
char operator;
scanf("%lf %c %lf", &num1, &operator,&num2);
switch (operator) {
case '+':
_add(num1, num2);
break;
case '-':
minus(num1, num2);
break;
case '*':
multiply(num1, num2);
break;
case '/':
_remove(num1, num2);
break;
case '%':
mod(num1, num2);
break;
default:
printf("error");
break;
}
return 0;
}
void _add(double a, double b)
{
printf("%.2f", a + b);
}
void minus(double a, double b)
{
printf("%.2f", a - b);
}
void multiply(double a, double b)
{
printf("%.2f", a * b);
}
void _remove(double a, double b)
{
if (b != 0)
printf("%.2f", a / b);
else
printf("error");
}
void mod(double a, double b)
{
if ((long)b != 0)
printf("%d", (long)a % (long)b);
else
printf("error");
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻名称:c语言百日刷题第七天-创新互联
网页URL:http://myzitong.com/article/cdicpp.html