我想要一个alph-numeric floyd三角形,但它显示出一些错误..可能是一个逻辑错误..
我使用的代码是
#include<stdio.h>
int main(){
int i, j;
char a[11]="ABCDEFGHIJ";
int n[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int index = 0;
for(i=0; i<5; i++){
for(j=0; j<i; j++){
if(i%2==0)
printf(" %d ",a[index]);
else
printf(" %d ",n[index]);
index++;
}
printf("\n");
}
return 0;
}
然而我得到的输出是:
1
66 67
4 5 6
71 72 73 74
我想要的输出是:
1
B C
4 5 6
G H I J
让我知道我缺少的地方..
答案 0 :(得分:4)
更改
printf(" %d ",a[index]);
到
printf(" %c ",a[index]);
这会将a[index]
格式化为字符而不是ASCII代码。
顺便说一下,你真的不需要数组。您可以根据index
:
if(i%2==0)
printf(" %c ", 'A' + index);
else
printf(" %d ", index + 1);