печать количества пробелов с помощью printf в C
мне было интересно, как я могу это сделать ,чтобы напечатать определенное количество пробелов с помощью printf в C Я думал что-то вроде этого,но и мой код не печатается после первого оператора printf,моя программа компилируется отлично.Я предполагаю, что мне нужно напечатать N-1 пробелов, но я не совсем уверен, как это сделать.
спасибо.
#include <stdio.h>
#include <limits.h>
#include <math.h>
int f(int);
int main(void){
int i, t, funval,tempL,tempH;
int a;
// Make sure to change low and high when testing your program
int low=-3, high=11;
for (t=low; t<=high;t++){
printf("f(%2d)=%3dn",t,f(t));
}
printf("n");
if(low <0){
tempL = low;
tempL *=-1;
char nums[low+high+1];
for(a=low; a <sizeof(nums)/sizeof(int);a+5){
printf("%d",a);
}
}
else{
char nums[low+high];
for(a=low; a <sizeof(nums)/sizeof(int);a+5){
printf("%d",a);
}
}
// Your code here...
return 0;
}
int f(int t){
// example 1
return (t*t-4*t+5);
// example 2
// return (-t*t+4*t-1);
// example 3
// return (sin(t)*10);
// example 4
// if (t>0)
// return t*2;
// else
// return t*8;
}
вывод должен быть примерно таким:
1 6 11 16 21 26 31
| | | | | | |
2 ответов
печати n
помещения
printf
имеет классный формат спецификатора ширины, который позволяет передать int
, чтобы задать ширину. Если количество пробелов, n
, больше нуля:
printf("%*c", n, ' ');
следует сделать трюк. Мне также приходит в голову, что вы могли бы сделать это для n
больше или равно нулю с:
printf("%*s", n, "");
печать 1, 6, 11, ... шаблон
мне все еще не совсем ясно, чего вы хотите, но для генерации точного шаблон, который вы описали в нижней части своего поста, вы можете сделать следующее:
for (i=1; i<=31; i+=5)
printf("%3d ", i);
printf("\n");
for (i=1; i<=31; i+=5)
printf(" | ");
printf("\n");
вот результаты:
1 6 11 16 21 26 31
| | | | | | |
Если бы вашей целью было:
начать печать на заданной ширине с помощью printf
вы можете достичь этого, как показано ниже:
printf("%*c\b",width,' ');
добавьте вышеуказанный материал перед печатью фактического материала, например. перед for-loop.
\b
позиционирует курсор на одну точку перед текущей позицией, тем самым делая вывод, как представляется, начать с определенной ширины,width
в этом случае.