牛客网刷题总结4-22

1.一些简单的程序 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
    int i = pow(3, 2);
    printf("%d",i);
    return 0;
}
用swap函数交换数字顺序
//函数的设计
void swap(int* pa, int* pb)
{
	int temp;
	temp = *pa;
	*pa = *pb;
	*pb = temp;
}
int main()
{
	//创建两个数字
	int a =0,b =0;
	scanf("%d%d", &a,& b);
	printf("交换前: a=%d,b=%d\n", a, b);
	swap(&a, &b);
	printf("交换后: a=%d,b=%d\n", a, b);
	return 0;
}





字符圣诞树
int main()
{
	char ip;
	scanf("%c", &ip);
	printf("    %c       \n", ip);
	printf("   %c %c     \n", ip,ip);
	printf("  %c %c %c   \n", ip,ip,ip);
	printf(" %c %c %c %c \n", ip,ip,ip,ip);
	printf("%c %c %c %c %c\n", ip,ip,ip,ip,ip);
return 0;
}

使用嵌套循环
#include<stdio.h>
int main()
{
    char a;
    scanf("%c", &a);//输入一个任意字符
    int i = 1;//记行数用的
    int j, g; //j是输出“空格”用的,g是输出“字符+空格”用的
    for (i = 1; i < 6; i++)//关于行数i在前5行执行的循环(包括第5行)
    {
        for (j = 5 - i; j > 0; j--)//输出第n行的前5-n个空格(n<=5)
        {
            printf(" ");
        }
        for (g = 0; g < i; g++)//输出第n行的所有空格后的字符
        {
            printf("%c ", a);//注意所输出的%c后有一个空格
        }
        printf("\n");//第n行输出结束,执行换行操作
    }//运行到这里就输出了n行的字符金字塔图形
    return 0;
}

int main()
{
	int len =strlen("hello bit");
	printf("%d", len);

	return 0;
}
73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33输出其对应的字符
int main()
{
	printf("%c%c%c%c%c%c%c%c%c%c%c%c", 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33);


	return 0;
}
输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。
int main()
{
	int a, b, c;                   //你输出一串数字,将其分割,可以限定存放变量的长度;
	scanf("%4d%2d%2d", &a, &b, &c);//%4d  代表为我的a变量创建4个字节的空间,也就是前四个输入的东西存放到a中
	printf("year=%d\nmonth=%02d\ndate=%02d", a, b, c);//%02d代表输出数字有两列,不足前面补零
                                                    //2代表最小宽度为2,对于数字8,输出结果为08,对于数字100,输出结果100;

	return 0;
}

2.反向输出数字(两种方法,字符数组and对取余%取商/的理解)
 

针对每组输入,反向输出对应四位数。  例如输入1234,输出4321;
第一种方法,利用字符数组,最后只输出后四位即可
int main()
{
	char str[10];
	scanf("%s", str);//直接存储输入的字符串
	printf("%c%c%c%c\n", str[3], str[2], str[1],str[0]);
	return 0;
}



第二种利用取余%和取商/
int main()
{
	int input;
	scanf("%d", &input);//存储四位数
	int i;
	for (i = 0; i < 4; i++)
	{
		printf("%d", input % 10);//%10会一直取余到余数小于10,输入一个四位数,第一次除以10,得到一个三位数,继续除以10,直到得到一个个位数,这个个位数即千位上的数字
		input =input / 10;
	}
	return 0;
}

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值