c - 如何在 C 中生成这种模式?
问题描述
%@@@%
%...%
%...%
%...%
%@@@%
我的错误在哪里?请告诉我。我是初学者:我刚开始编程。我会很感激你的帮助。
#include<stdio.h>
int main(){
int i,j,num;
scanf("%d", &num);
for(i=0;i<num;i++){
for(j=0;j<num;j++){
if((i==0)||(i==num-1)){
printf("@");
}
else if((j==i-1)||(j==num-1)){
printf("%");
}
else
printf(".");
}
printf("\n");
}
}
解决方案
您的代码中存在三个问题。
- 该
%
符号是 C 中的一个运算符,用于在printf
函数中进行格式化。因此printf("%");
不会打印此字符。有个窍门,你可以改写printf("%%");
。 - 先关心字符
%
,再关心@
你评价中的字符,否则取不到%
第一行和最后一行的字符 - 变量的条件
j
也必须等于0
或num-1
有一个更优雅的解决方案,但要遵循您的代码,这是正确的实现:
#include<stdio.h>
int main(void)
{
int i,j,num;
scanf("%d", &num);
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
if((j==0)||(j==num-1))
{
printf("%%");
}
else if((i==0)||(i==num-1))
{
printf("@");
}
else
{
printf(".");
}
}
printf("\n");
}
return 0;
}
我建议重新考虑您的代码。玩得开心。:-)
推荐阅读
- react-native - Using Redux Reselect and PureComponent - Nothing updates
- c# - 如何在wpf中找到文本框的插入符号位置
- angular - How to change content with
on non-main page? - php-7 - In PHP7 how Replace thes code from preg_replace() to preg_replace_callback()
- r - 基于具有相同名称的数据框中添加列
- ansible - Ansible Shell/Command Module - "msg": "[Errno 2] No such file or directory",
- python - 通过串口发送位串
- python - Training lstm model?
- python - Slugify 一个线程链接并在 home.html 上创建它
- javascript - 按钮需要点击 2 次才能换出 div