在C中一起添加整数但不是数学上

时间:2017-11-06 17:53:57

标签: c

如何将这样的整数添加到一起。

假设你从1开始,然后你添加2.所以你有12,接下来加3,所以你有123.依此类推。

我只是连接,但我不允许在这个程序中使用字符串。

3 个答案:

答案 0 :(得分:4)

使用一些不寻常的数学运算(基于十进制系统的机制)来实现所需的添加变化:

代码:

#include <stdio.h>

int main(void)
{
    int i;
    int number=0;
    for (i=1; i<5; ++i)
    {
        number=number*10 + i;
        printf("%d\n", number);
    }
    return 0;
}

输出:

1
12
123
1234

答案 1 :(得分:0)

喜欢这个吗?

#include <stdio.h>

int main() {
  int a = 4, b = 5, c = 6, d = 7;
  printf("a+b=%d\n",a*10+b);
  printf("a+b+c=%d\n",(a*10+b)*10+c);
  printf("a+b+c+d=%d\n",((a*10+b)*10+c)*10+d);
  return 0;
}

答案 2 :(得分:-1)

这可能是使用realloc

的典型情况
char *mystr = NULL;
char *temp;
char c, ch;

short count = 0;
do {
    printf("Enter character : ");
    scanf(" %c", &c); //  Better use sscanf or fgets, scanf is problematic
    temp = (char*)realloc(mystr, (++count) * sizeof *mystr);
    if (NULL != temp) {
        mystr = temp;
        mystr[count - 1] = c;
    }
    printf("Do you wish to continue: ");
    scanf(" %c", &ch);
} while ('y' == ch);
// Since and since you don't have a null terminated string, do
for (int i = 0; i < count; i++)
    printf("%c", mystr[i]);

    printf("\n");
free(mystr); // Freeing the memory
getch();

注意:此程序中没有字符串;)