我参加了考试,从那以后我一直在苦苦挣扎。您有一个整数数组(例如 13、6、21、4),我需要生成如下所示的输出:
13 = 2^3 + 2^2 + 2^0
6 = 2^2 + 2^1
21 = 2^4 + 2^2 + 2^0
4 = 2^2
这就是我到目前为止所得到的。
#include <stdio.h>
#define MAX 100
int main() {
int niz[MAX], nizb, n, i, ones, k;
while(1) {
printf("Array length: ");
scanf("%d", &n);
if (n<=0 || n>MAX) break;
printf("Array elements: ");
for(i=0;i<n;i++){
scanf("%d", &niz[i]);
if (niz[i] <=0) {
printf("Error! Wrong value. Enter new one: ");
scanf("%d", &niz[i]);
}
}
for(i=0;i<n;i++) {
nizb = niz[i];
ones = 0;
for(k=0; k < 16; k++) {
//What should i do here?
}
}
}
}
我被困在这里。我不知道我应该使用多少位,以及 C 如何看到这些整数位。我正在使用 var 'k' 添加到格式为 '2^3 + 2^2 ...' 的字符串中,其中 k 是 'for' 迭代的值。我假设整数的长度是 16,但我真的不确定,因为我们是在一张纸上做的。
我想对大家说声谢谢!!!