C++做题小记

做题时遇到的一些小技巧

1.用getchar()控制输入数组的元素个数

#include <stdio.h>
int main(void)
{
	char c[100] = {0};//储存输入数据用的数组
	int i = 0;//记录输入的字符个数方便输出
	char z = 0;//解决方法就是加入临时变量来先储存再判断
	while(1)
	{
 		z = getchar();//先储存输入的数据
		if(z == ‘\n’)//再判断
			break;//如果是回车就退出循环
		c[i] = z;//如果不是回车就存储
		i++;//计数加一
	}
	for(int k = 0;k < i;k++)
		printf("%c", c[k]);//把储存的数据输出
	printf("\n");
	return 0;
}

精简款

#include <stdio.h>
int main(void)
{
        int i = 0;
        char c[100] = {0};
        while((c[i++] = getchar()) != '\n');
        for(int k = 0;k <= i;k++)
                printf("%c", c[k]);
        return 0;
}

2.给计算数据赋初值的问题

 在计算处理数据时,总是忘记给数据赋初值,导致编译成功,但是计算输出都是错误值。
 没有加static,默认为auto 型,此时,不给初值,变量的初值是随机的。
如果加了static不给初值,变量的初值是默认的 0。
其实不能说不赋初值就不行,对于局部变量,不赋初值的话,其实他里面存的是一个随机的值,谁也不知道他是多少,因此如果没赋初值的情况下就使用它,程序是完全不可控的。

3.do while和while的一些妙用

做题是总是用for循环,但是有些情况用while和do while显然更好,后做题再补充吧

4.输出控制字符所占字节长度问题

写C++程序时,有时题目要求输出格式是%5d之类的,但是不想用C语言,后面查询发现C++兼容C的scanf和printf语句。
C语言是C++语言的一个子集,也就是说,C语言完全可以不加修改直接用于C++的(当然,C++对类型的检查比C严格,你的C格式要符合C++语法才可以的),printf函数在iostream中有定义,所以可以执行。
而scanf及printf在C或C++中,结果一样的。
在C++程序中需要格式化输入时,就可以直接用scanf的格式化输入的
cin/cout/scanf/printf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值