关于输出中空格的控制

关于作业中输出要求空格的控制

在近几次超星作业中,大部分题目输出的数据都不止一个,但是大部分要求输出结果中每个数据间用一个西文空格间隔最后一个数后无多余字符,因此就需要我们控制输出的空格。以下是我总结的两个方法,供大家参考。

方法一:直接判断控制

适用范围:输出有明确的开始和结束位置
例如:
作业04
4.删除重复元素
题目描述:编写函数,不使用其他辅助数组,把整型数组中重复元素删得只剩一个;所有未被删除元素都保留最先顺序移动到数组前面。
输入:第一行输入数组长度n(≤100),第二行依次从键盘随机输入n个整数作为数组元素值。
输出:已删除重复元素的数组,各元素间以一个西文空格间隔,最后一个元素后无字符。
这里就不放全部的代码了大家自行查看题目代码
https://blog.csdn.net/qq_49509179/article/details/109754996
这里我们就知道最后输出的数据的个数sum,因此我们就可以通过在数据输出之后加上判断是否是最后一个输出的数据,如果是,就不输出空格。

for ( i = 0; i < sum; i++){
		printf("%d", a[i]);
		if (i != sum - 1) 
/*我们已经知道一共要输出sum个数据,而最后一个数据在数组中是a[sum-1]
因此可以判断输出控制i是否等于sum-1,如果是就不用再输出空格了*/
		printf(" ");
	}

如果我们知道数据开始位置同理也可以用这种方法

for ( i = 0; i < sum; i++){
		if (i != 0) 
		printf(" ");
		printf("%d", a[i]);
}

方法二:定义bool变量控制

当程序中存在通过判断来控制输出时,就无法使用方法一了,因为你不知道要从哪个数据开始输出这时可以用方法二

bool flag=true;
for(i=0;i<n;i++){
	if(true){
		if(flag) flag=false;
		else printf(" ");
		printf("%d",a[i])
	}
}

在上面输出中,数据的输出需要if中的条件成立,而我们并不知道从哪个数据开始条件成立
因此先定义了bool 变量flag并赋值为true,在输出数据前进行判断,如果flag是真就说明这是第一个要输出的数据,前面不用输出空格,将flag赋值为false,在进行以后数据的输出时,都会在数据前输出空格,从而保证格式的正确。

在我的作业中其他的方法基本都是这两种方法衍生出来的,就不一一介绍了。
如果有更好的方法欢迎大家私信或者在评论区留言。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值