编程题#6:流感传染 C语言

这篇博客探讨了一道编程题目,涉及使用C语言模拟流感的传染过程。通过遍历字符数组,将特定字符替换来表示传染。博主提到了在处理字符数组时,需要注意scanf函数会将回车作为字符存储,因此需要采取措施处理这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:

遍历所有的房间,是@的就遍历@附近的点,@附近的点是.就标记为!

再次遍历所有点,将!改为@

最后遍历所有点,统计@的个数num并输出

(其中我查找所有点的时候分为了这几块)


新知识点:

给字符型数组赋值时,scanf会把回车也当做字符,这样就占用了一个数组元素,一开始用%c吃掉,后来用getchar();吃掉了

#include<stdio.h>

int main(){
	char a[100][100],c;
	int n,i,j,m,k;
	int num = 0;
	scanf("%d%c", &n,&c);//吃掉回车
	for (i = 0; i < n; i++){
		for (j = 0; j < n; j++){
			scanf("%c", &a[i][j]); 
		}
		getchar();//吃掉回车 
	}

	scanf("%d", &m);
	//m天就是遍历m遍
	for (k = 0; k < m-1; k++){
		//最上面一溜
		i = 0;
		for (j = 1; j < n - 2; j++){
			if (a[i][j] == '@'){
				if (a[i][j - 1] == '.'){
					a[i][j - 1] = '!';
				}
				
				if (a[i + 1][j] == '.'){
					a[i + 1][j] = '!';
				}

				if (a[i][j + 1
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值