[英]Printing number patterns in C
我仍在学习 C 中的循环和数字模式,并尝试将这种模式作为练习来执行:
98765
87654
76543
65432
54321
模式中的最大数字是 9,最小数字是 1。所以我这样做了:
#include <stdio.h>
int main() {
int i,num,x=9,y,z;
scanf("%d", &i);
for (z=1;z <= i; z++) {
num=x;
x--;
for (y = 1; y <= i; y++) {
printf("%d",num);
num--;
}
printf("\n");
}
return 0;
}
行数和列数也应该相同。 我仍然需要帮助来弄清楚缺少什么。
我没有完全理解你的问题,先把你的问题说清楚。
但是,如果您想打印具有相等行数和列数的数字模式,并且您将较高的数字和较低的数字作为输入,那么这里显示的代码可能对您有用。
#include <stdio.h>
int main()
{
int biggerNumber = 9, smallerNumber = 1;
int numberOfRowAndColumn = ((biggerNumber - smallerNumber) / 2) + 1;
for (int i = 0; i < numberOfRowAndColumn; i++)
{
int temporaryVariable = biggerNumber;
biggerNumber--;
for (int j = 0; j < numberOfRowAndColumn; j++)
{
printf("%d ", temporaryVariable);
temporaryVariable--;
}
printf("\n");
}
return 0;
}
而且,如果您想从用户那里获取行数和列数,那么您也可以这样做,只需更改一行即可。
int numberOfRowAndColumn = ((biggerNumber - smallerNumber) / 2) + 1;
而不是这一行只写
scanf("%d", &numberOfRowAndColumn);
从用户那里获取输入。
希望这可以帮助。
这是上面显示的代码的输出:
9 8 7 6 5
8 7 6 5 4
7 6 5 4 3
6 5 4 3 2
5 4 3 2 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.