36.编写代码实现,模拟用户登录情景,并且只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
字符串之间不能直接比较,需要使用strcmp函数、需要引头文件string.h
strcmp的返回值有三种,分别是大于0、小于0、等于0
第一个字符串大于第二个字符串,则返回大于0
第一个字符串小于第二个字符串,则返回小于0
第一个字符串等于第二个字符串,则返回等于0
比较的是ASCLL码值
#include<stdio.h>
int main()
{
int i = 0;
int password[20] = { 0 };
for (i = 0; i < 3; i++)
{
printf("密码:");
scanf("%s", password);
if (strcmp(password, "123456") == 0)
{
puts("登录成功!!!");
break;
}
else
printf("登录失败,你还有%d 次机会\n", 2 - i);
}
if (3 == i)
printf("输入失败!!!");
return 0;
}
37.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
结果是小数,要用浮点型!
int main()
{
double sum1 = 0.0, sum2 = 0.0, sum = 0.0;
for (int i = 1; i < 100; i += 2)
{
sum1 = sum1 + (1.0) / i;
}
for (int i = 2; i < 101; i += 2)
{
sum2 = sum2 + (1.0) / i;
}
sum = sum1 - sum2;
printf("%lf\n", sum);
}
38.打印沙漏
#include<stdio.h>
int main(){
int N,num=1,i=1,j=1,sum;
char n;
scanf("%d %c",&N,&n);
while(i<=N){
j+=2;
i+=j*2;
num+=2;
}
i-=j*2; //计算组成沙漏的最大个数
num-=2; //计算沙漏行数
sum=N-i;//计算剩余数
//上半部分
for(j=0;j<num/2+1;j++){
for(i=0;i<j;i++){
printf(" ");
}
for(i=0;i<num-j*2;i++){
printf("%c",n);
}
printf("\n");
}
//下半部分
for(j=1;j<=num/2;j++){
for(i=1;i<=num/2-j;i++){
printf(" ");
}
for(i=1;i<=j*2+1;i++){
printf("%c",n);
}
printf("\n");
}
printf("%d\n",sum);//输出剩余数
return 0;
}
39.个位数统计
#include <stdio.h>
#include <string.h>
int main()
{
int n,i,j;
char a[1000],b='0';
scanf("%s",a);
i=strlen(a);
while(b<='9')////统计1~9每一个数字出现次数
{
n=0;
for(j=0;j<i;j++)
{
if(a[j]==b)
n++;
}
if(n!=0)
printf("%c:%d\n",b,n);
b+=1;
}
return 0;
}
40.矩阵元素定位
#include<stdio.h>
int main(){
int n=0,m=0,i=0,j=0,x=0,y=0,arr[10][10]={0};
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
scanf("%d ",&arr[i][j]);
}
}
scanf("%d %d",&x,&y);
printf("%d",arr[x][y]);
return 0;
}