C 显示按5 5顺序排列的25个数字
我在按5乘5的顺序排列25个数字时遇到问题。这就是我到目前为止所做的:C 显示按5 5顺序排列的25个数字,c,C,我在按5乘5的顺序排列25个数字时遇到问题。这就是我到目前为止所做的: int main() { int num,arr[100]; int i, y, swap; num = 25; printf("Enter %d integers \n",num); for(i = 0; i < 25; i++) { printf("\nElement %d: ", i + 1); scanf("%d", &arr
int main() {
int num,arr[100];
int i, y, swap;
num = 25;
printf("Enter %d integers \n",num);
for(i = 0; i < 25; i++) {
printf("\nElement %d: ", i + 1);
scanf("%d", &arr[i]);
}
for(i = 0; i < ( num - 1 ); i++) {
for(y = 0 ; y < num - i - 1; y++) {
if(arr[y] > arr[y+1]) {
swap = arr[y];
arr[y] = arr[y+1];
arr[y+1] = swap;
}
}
}
printf("Sorted list in ascending order:\n");
for ( i = 0 ; i < num ; i++ )
printf("%d \t", arr[i]);
getch();
}
只需一个修改:
printf("Sorted list in ascending order:\n");
for ( i = 0 ; i < num ; i++ )
{
printf("%d \t", arr[i]);
if(i % 5 == 0) putchar('\n');
}
printf(“按升序排序的列表:\n”);
对于(i=0;i
只需一次修改:
printf("Sorted list in ascending order:\n");
for ( i = 0 ; i < num ; i++ )
{
printf("%d \t", arr[i]);
if(i % 5 == 0) putchar('\n');
}
printf(“按升序排序的列表:\n”);
对于(i=0;i
像这样:
...
printf("Sorted list in ascending order:\n");
for ( i = 0 ; i < 5; i++ ) {
printf("%c%d", (i % 5) ? '\t' : '\n', arr[i]);
}
printf("\n");
...
或
像这样:
...
printf("Sorted list in ascending order:\n");
for ( i = 0 ; i < 5; i++ ) {
printf("%c%d", (i % 5) ? '\t' : '\n', arr[i]);
}
printf("\n");
...
或
避免在最后一个数字后打印额外的空格选项卡 要获得直观排列的值,请使用打印宽度
int print_width = 4;
int columns = 5;
for (i = 0 ; i < num ; i++ ) {
printf("%*d", print_width, arr[i]);
putchar(i%columns == columns-1 ? '\n' : '\t');
}
int-print\u-width=4;
int列=5;
对于(i=0;i
避免在最后一个数字后打印额外的空格选项卡
要获得直观排列的值,请使用打印宽度
int print_width = 4;
int columns = 5;
for (i = 0 ; i < num ; i++ ) {
printf("%*d", print_width, arr[i]);
putchar(i%columns == columns-1 ? '\n' : '\t');
}
int-print\u-width=4;
int列=5;
对于(i=0;i
如果(i%%5==0)putchar('\n');,您只需添加吗?它是如何工作的它是这样工作的-每5个数字(如果我可以被5整除,余数为0),放置一个换行符以形成一行。
这将不起作用,并且说明了为什么使用大括号是一种好的做法……您只需添加if(i%%5==0)putchar('\n')?它是如何工作的它是这样工作的-每5个数字(如果我可以被5整除,余数为0),放置一个换行符以形成一行。
这将不起作用,并说明了为什么使用大括号是一种好的做法……什么是不起作用的?你的产出是多少?你有没有调试过它,看看哪里出了问题?还有什么是不起作用的?你的产出是多少?你调试过它了吗?为什么用%c来表示(i%5)它在第一个“x x x x”
之前打印一个'\n'
,在最后一个“x x x x”
之后缺少一个'\n'
@COL(i%5)
是更大表达式(i%5)的一部分\t':'\n'
根据(i%5)
@chux的“真实性”生成制表符或换行符,因此增加了printf(“\n”)代码>行。如果初始换行符不符合要求,则每5行就有更复杂的方案来完成换行符。是的,我错过了后面的printf(“\n”)代码>所以请对此进行投票。我确实认为没有更复杂的方法可以避免初始换行。为什么要使用%c(I%5)它在第一个“x x x”
之前打印一个,\n'
,在最后一个“x x x x”
@COL(I%5)
之后缺少一个“\n'
。是一个更大表达式的一部分(I%5)\t':'\n'
根据(i%5)
@chux的“真实性”生成制表符或换行符,因此增加了printf(“\n”)代码>行。如果初始换行符不符合要求,则每5行就有更复杂的方案来完成换行符。是的,我错过了后面的printf(“\n”)代码>所以请对此进行投票。我确实认为有,而不是更复杂的方法,来避免最初的换行。
int print_width = 4;
int columns = 5;
for (i = 0 ; i < num ; i++ ) {
printf("%*d", print_width, arr[i]);
putchar(i%columns == columns-1 ? '\n' : '\t');
}