我必须编写一个具有以下条件的程序:送货员将成堆(包)的啤酒运送到不同的商店
- 第 1 家商店,1 堆
- 第二家商店,2 堆
- 第 3 家商店,3 堆
- ...
- 直到第 10 家商店。
程序必须这样打印:
int i1,shop[10]={1,2,3,4,5,6,7,8,9,10},stacks[10]={1,2,3,4,5,6,7,8,9,10},counter;
for (i1 = 9; i1 >= 0; i1--){
for(counter=0;counter<=i1;counter++){
printf("Shop[%i] %i \t",shop[i1], stacks[i1]);
}
它正在运行,但输出不是我想要的:
Shop[10] 10 Shop[10] 10 Shop[10] 10 Shop[10] 10
Shop[10] 10 Shop[10] 10 Shop[10] 10 Shop[10] 10
Shop[10] 10 Shop[10] 10 Shop[9] 9 Shop[9] 9
Shop[9] 9 Shop[9] 9 Shop[9] 9 Shop[9] 9
Shop[9] 9 Shop[9] 9 Shop[9] etc.
它必须看起来像这样:
- Shop 1 - 1
- Shop 2 - 2, 2
- Shop 3 - 3, 3, 3
- Shop 4 - 4, 4, 4, 4.
最佳答案
你的循环已经打乱了。这是一段可以打印您想要的内容的代码。修改代码,使其访问正确的数组并打印其内容:
for(i = 1; i <= 10; i++) {
printf("Shop %d - ", i);
for(j = 1; j <= i; j++)
printf("%d, ", i);
putchar('\n');
}
第一个循环(使用 i
)将打印“Shop - ”字符串 10 次。第二个循环将为第一个循环的每次迭代运行,从而为您提供正确的打印数量。较小的代码更改将占据逗号打印的核心...
输出:
Shop 1 - 1,
Shop 2 - 2, 2,
Shop 3 - 3, 3, 3,
Shop 4 - 4, 4, 4, 4,
Shop 5 - 5, 5, 5, 5, 5,
Shop 6 - 6, 6, 6, 6, 6, 6,
Shop 7 - 7, 7, 7, 7, 7, 7, 7,
Shop 8 - 8, 8, 8, 8, 8, 8, 8, 8,
Shop 9 - 9, 9, 9, 9, 9, 9, 9, 9, 9,
Shop 10 - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
关于C 中循环的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652587/