每日博客【8】

1.结构体

结构体可以封装多种基本数据类型。

结构体的声明和举例如下:

#include <stdio.h>
struct stu {
	char name[20];//结构体的声明
	char sex[5];
	int age;
};
int main() {
	struct stu s = { "zhangsan","男",29 };
	printf("%s\n", s.name);//输出形式
	printf("%s\n", s.sex);
	printf("%d\n", s.age);
	return 0;	
}

2.if语句

        if语句的三种基本形式:

                a.

if(表达式){
    语句
}

当if表达式中为真时,进入if语句当中并执行。

注意:当表达为if(a)时,等价于if(a!=0)

                b.

if(表达式){
    语句
}
else{
    语句
}

当if中表达式为真时,进入if语句当中并执行。如果if语句为假,则进入else当中并执行。

注意:(1)else后不用加上(表达式)

          (2)else总与相邻的if对应

               c.

if(表达式){
    语句
}
else if(表达式){
    语句
}
else if(表达式){
    语句
}
.
.
.
else{
    语句
}

用于多分支的控制和表达。

3.switch语句

int main() {
	switch (整型表达式) {
		case 常量:语句
	}
	return 0;
}

例如:

#include <stdio.h>
int main()
{
    int day = 0;
    switch(day)
   {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;    
        case 4:
            printf("星期四\n");
            break;    
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期天\n");    
            break;//break的作用是实现分支,如果没有break在day=1时,进入case1输出完星期一后会继续跳入case2,case3等等中进行输出
   }
    return 0;
}

4.strcmp字符串的比较

语法:

strcmp(”字符串1“,”字符串2“)

当s1<s2时,返回为负数;

当s1=s2时,返回值= 0;

当s1>s2时,返回正数。 [2] 

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止

在文章9.中有所运用到

5.公务员面试


#include <stdio.h>

int main() {
    int a = 0;
    int max = 0;
    int min = 100;
    int sum = 0;
    int count = 0;
    while (scanf("%d", &a) != EOF) {
        if (a > max) {
            max = a;
        }
        if (a < min) {
            min = a;
        }
        sum = sum + a;
        count++;
        if (count == 7) {
            printf("%.2f\n", (sum - max - min) / 5.0);
            count = 0;
            max = 0;
            min = 100;
            sum = 0;
        }
    }
    return 0;
}

思路:首先是多组输入,老朋友了。通过两个if分别对输入的数进行一一比较得出最大值和最小值。在以题目中的七个数值为一组。(自己没想出来这种方法,觉得很厉害,记录下来学习)

 6.有序序列插入一个数

 

#include <stdio.h>
int main() {
    int a=0;
    int ch[52];
    int i=0;
    int j=0;
    int min=0;
    scanf("%d",&a);
    for(i=0;i<a;i++)
    {
        scanf("%d",&ch[i]);
    }
    scanf("%d",&ch[a]);//一开始写i+1来着,但后面发现经过上面的for之后i==a
    for(i=0;i<a+1;i++)
{
    for(j=i+1;j<a+1;j++)
    {
        if(ch[i]>ch[j])
        {
            min=ch[j];
            ch[j]=ch[i];
            ch[i]=min;
        }
    }
}
for(i=0;i<a+1;i++)
{
    printf("%d ",ch[i]);
}

    return 0;
}

思路:先通过for循环来输入先前的排序,再把需要插队的数值读取后放到数组的最后,再经行从小到大的排序。

 7.筛选法求素数

#include <stdio.h>

int main() {
    int a=0;
    int i=0;
    while(scanf("%d",&a)!=EOF)
    {
        int count=0;
        for(i=1;i<a+1;i++)
        {
            int j=0;
        
            for(j=2;j<a+1;j++)
            {
                if(i%j==0)
                {
                    break;
                }
               
            }
            if(i==j)
            {
              printf("%d ",i);
              count++;
            }
        }
        printf("\n");
        printf("%d",a-count-1);
    }
    return 0;
}

思路:多组输入,for循环得出所需要的i个数值,再判断是否为素数,是则输出且计数+1。

8.图像相似度

 

#include <stdio.h>

int main() {
    int i=0;
    int j=0;
    scanf("%d %d",&i,&j);
    int a=0;
    a=i*j;
    int ch[10000];
    int sh[10000];
    int count=0;
    float h=0;
    for(i=0;i<a;i++)
    {
        scanf("%d",&ch[i]);
        
    }
    for(j=0;j<a;j++)
    {
        scanf("%d",&sh[j]);
    }
    for(i=0;i<a;i++)
    {
        
        if(sh[i]==ch[i])
        {               
            count++;
        }
       
    }
    h=((float)count/a)*100;
    printf("%0.2f",h);
    return 0;
}

思路:通过行和列相乘算出一幅画要输入多少个数值,再用数组一一读取。分开两个数组分别对两幅画读取,再一一比较,如果数值相同就计数+1,最后用相同的数值/一幅画的数值个数*100得出百分比。

 9.登录验证

 

#include <stdio.h>

int main() {
    char ch[10];
    char sh[10];
    while(scanf("%s %s",ch,sh)!=EOF)//注意字符串数组读取不用&
    {
        if(strcmp(ch,"admin")==0&&strcmp(sh,"admin")==0)
        {
            printf("Login Success!");
        }
        else
        {
            printf("Login Fail!");
        }
    }
    return 0;
}

 思路:用数组读取字符串,再用strcmp函数比较。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值