在C中打印字符数组错误

时间:2015-08-16 10:38:23

标签: c arrays pointers

在C中尝试此代码时,我在main方法中看到了垃圾值。我在做什么错误?

我希望我也应该在main方法中使用“%s”,但似乎错了。为什么呢?

#include <stdio.h>
#include <stdlib.h>
char* minimumMultiple(int num);

int main(void) {
// your code goes here
printf("%s", minimumMultiple(13)); // prints  -  *p·ä…d¿“¿Eƒ (GARBAGE) - WHY?
return 0;
}

char* minimumMultiple(int num) {
int chars1s = 1, rem = 1;
while (rem != 0) {
    rem = (rem*10+1) % num;
    chars1s++;
}
char chars[chars1s];
int i;
printf("%d\n", chars1s); // prints 6 
for (i=0;i<chars1s;i++) {
    chars[i] = '1';
}
chars[i] = '\0';
    printf("%s\n",chars); // prints "111111"
return chars;
}

0 个答案:

没有答案
相关问题