C循环模式
我的代码工作了一半,但另一半无法工作 需要什么样的图案: 1SSSS s2ssss ss3sss sss4ss SS5s SSS 6 我的模式是什么样子的: 一, s2 ss3 sss4 ssss5 SSS 6 这是我的密码C循环模式,c,C,我的代码工作了一半,但另一半无法工作 需要什么样的图案: 1SSSS s2ssss ss3sss sss4ss SS5s SSS 6 我的模式是什么样子的: 一, s2 ss3 sss4 ssss5 SSS 6 这是我的密码 #include <stdio.h> int main() { int i, j, k, num; printf("Enter number "); scanf("%d", &num); for (i = 1; i &
#include <stdio.h>
int main()
{
int i, j, k, num;
printf("Enter number ");
scanf("%d", &num);
for (i = 1; i <= num; ++i)
{
for (j = 1; j <= i; ++j)
{
if (j != i) {
printf("s");
}
}
printf("%d ", j-1);
printf("\n");
}
return 0;
}
我猜你在这件事上犯了个错误
for(int j=1; j<=i ; ++j)
我应该一直到num变量,因为需要打印num次
希望这有帮助问题在您的for循环中。你需要一个else子句,还需要打印i而不是j-1。这段代码运行正常
#include <stdio.h>
int main()
{
int i, j, num;
printf("Enter number ");
scanf("%d", &num);
for (i = 1; i <= num; ++i)
{
for (j = 1; j <= num; ++j)
{
if (j != i)
{
printf("s");
}
else
{
printf("%d", i);
}
}
printf("\n");
}
return 0;
}
在内部循环中,从1计数到num,并在if中添加一个else以打印数字。精度字段%.precision可用于打印特定数量的字符,星号提供了使用变量的方法
#include <stdio.h>
#include <string.h>
int main()
{
int each = 0;
char s[] = { "ssssssss"};
for ( each = 0; each < 6; each++) {
printf ( "%.*s%d%.*s\n", each, s, each + 1, 5 - each, s);
}
return 0;
}
内部循环输出i-1个字符,而不是num个字符
for (j = 1; j <= i; ++j)
{
if (j != i) {
printf("s");
}
}
printf("%d ", j-1);
程序输出可能如下所示
Enter a positive number less than 10 (0 - exit): 9
1ssssssss
s2sssssss
ss3ssssss
sss4sssss
ssss5ssss
sssss6sss
ssssss7ss
sssssss8s
ssssssss9
Enter a positive number less than 10 (0 - exit): 8
1sssssss
s2ssssss
ss3sssss
sss4ssss
ssss5sss
sssss6ss
ssssss7s
sssssss8
Enter a positive number less than 10 (0 - exit): 7
1ssssss
s2sssss
ss3ssss
sss4sss
ssss5ss
sssss6s
ssssss7
Enter a positive number less than 10 (0 - exit): 6
1sssss
s2ssss
ss3sss
sss4ss
ssss5s
sssss6
Enter a positive number less than 10 (0 - exit): 5
1ssss
s2sss
ss3ss
sss4s
ssss5
Enter a positive number less than 10 (0 - exit): 4
1sss
s2ss
ss3s
sss4
Enter a positive number less than 10 (0 - exit): 3
1ss
s2s
ss3
Enter a positive number less than 10 (0 - exit): 2
1s
s2
Enter a positive number less than 10 (0 - exit): 1
1
Enter a positive number less than 10 (0 - exit): 0
为什么每个人都认为这个答案实际上产生了预期的结果!没有。你有6行SSS6。请用else条件至少添加一点,否则UPVOUTS根本不合理……正如@MongZhu解释的,这里也有错误逻辑,您应该打印内部的j循环
Enter a positive number less than 10 (0 - exit): 9
1ssssssss
s2sssssss
ss3ssssss
sss4sssss
ssss5ssss
sssss6sss
ssssss7ss
sssssss8s
ssssssss9
Enter a positive number less than 10 (0 - exit): 8
1sssssss
s2ssssss
ss3sssss
sss4ssss
ssss5sss
sssss6ss
ssssss7s
sssssss8
Enter a positive number less than 10 (0 - exit): 7
1ssssss
s2sssss
ss3ssss
sss4sss
ssss5ss
sssss6s
ssssss7
Enter a positive number less than 10 (0 - exit): 6
1sssss
s2ssss
ss3sss
sss4ss
ssss5s
sssss6
Enter a positive number less than 10 (0 - exit): 5
1ssss
s2sss
ss3ss
sss4s
ssss5
Enter a positive number less than 10 (0 - exit): 4
1sss
s2ss
ss3s
sss4
Enter a positive number less than 10 (0 - exit): 3
1ss
s2s
ss3
Enter a positive number less than 10 (0 - exit): 2
1s
s2
Enter a positive number less than 10 (0 - exit): 1
1
Enter a positive number less than 10 (0 - exit): 0