Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我想问是否有人可以帮助我完成一个功能,我想给我的功能输入一个信息(例如4),该功能将产生以下数字:
1-222-33333-44444444
我不想只打印它们,我想生产它们,以便将这些数字保存到表中。
字符数来自
请注意,
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
我想问是否有人可以帮助我完成一个功能,我想给我的功能输入一个信息(例如4),该功能将产生以下数字:
1-222-33333-44444444
我不想只打印它们,我想生产它们,以便将这些数字保存到表中。
for(r=1; r<=num; r++)
{
for(sp=num-r; sp>0; sp--)
printf(" ");
for(c=1; c<=r; c++)
printf("%d", r);
for(k=2; k<=r; k++)
printf("%d", r);
printf("\n");
}
最佳答案
从问题上还不清楚您要完成什么。假设您想将C字符串生成为"1-222-33333-44444444"
,这是一种解决方案:
#include <stdio.h>
#include <stdlib.h>
char *produce_char_sequence(int n);
int main(void)
{
char* str = produce_char_sequence(4);
printf("%s\n", str);
free(str);
return 0;
}
char *produce_char_sequence(int n)
{
int i, j, idx;
char *str = malloc(n * (n + 1)); // n**2 + n - 1 + 1
if (str == NULL) {
fprintf(stderr, "cannot allocate memory by malloc\n");
exit(EXIT_FAILURE);
}
idx = 0;
for (i = 1; i <= n; i++) {
for (j = 1; j <= 2*i - 1; j++)
str[idx++] = '0' + i;
if (i != n) // unless within last iteration
str[idx++] = '-';
}
str[idx] = '\0';
return str;
}
字符数来自
1 + 3 + 5 + .. + 2n-1
arithmetic progression,总计为n2。然后,您还需要n-1个'-'
字符的空间和一个用于结束空字符的空间。请注意,
n
可能最多限制为9
。请参见http://ideone.com/Gi7KxG上的示例。关于c - 需要帮助的C方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27219754/
10-17 01:36