C 这只能通过循环来解决吗?
因为我是编程的初学者,所以我尽可能多地编程。我看到了一个关于整数数组如何保存字节的插图。我试着用c语言做这个例子,只是为了学习,我想知道是否有比我做的更好的方法 下面的代码独立工作,如果有更有效的方法,它仍然应该有相同的输出 我知道如果数组有100个整数,我的代码将非常具有挑战性C 这只能通过循环来解决吗?,c,loops,for-loop,printf,C,Loops,For Loop,Printf,因为我是编程的初学者,所以我尽可能多地编程。我看到了一个关于整数数组如何保存字节的插图。我试着用c语言做这个例子,只是为了学习,我想知道是否有比我做的更好的方法 下面的代码独立工作,如果有更有效的方法,它仍然应该有相同的输出 我知道如果数组有100个整数,我的代码将非常具有挑战性 #include <stdio.h> int main() { int lange = 3; int c[lange]; c[0] = 3; c[1] = 1; c
#include <stdio.h>
int main() {
int lange = 3;
int c[lange];
c[0] = 3;
c[1] = 1;
c[2] = 2;
for (int i = 0; i < lange*4; i++) {
printf("| ");
if (i == 0) {
printf("%d", c[0]);
}
else if (i==4) {
printf("%d", c[1]);
}
else if (i==8){
printf("%d",c[2]);
}
}
return 0;
}
#包括
int main(){
int-lange=3;
INTC[lange];
c[0]=3;
c[1]=1;
c[2]=2;
对于(int i=0;i
通过将循环中的if树更改为
if ((i % 4) == 0)
printf("%d", c[i/4]);
或者您可以通过执行以下操作打印每个字节
printf("%d", (c[i/4] >> (i%4 * 8)) & 0xff);
通过将循环中的if树更改为
if ((i % 4) == 0)
printf("%d", c[i/4]);
或者您可以通过执行以下操作打印每个字节
printf("%d", (c[i/4] >> (i%4 * 8)) & 0xff);
你应该使用#定义C#LEN 3
,并用它代替你的神奇数字3。您在每次迭代中循环打印出一个“|”,因此您的循环体不能真正简化,除了:
if(!(i % 4)) printf("%d", c[i/4]);
如果您只想打印0、4和8的内容,那么可以按4而不是1进行迭代,或者最好按1进行迭代(见下文)
输出为:
| 3| | | | 1| | | | 2| | |
如果这就是你想要的,我会写一份打印声明:
printf("| %d| | | | %d| | | | %d| | | ", c[0], c[1], c[2]);
或者,如果您希望一次在组上循环一次,只需迭代3次:
for (int i = 0; i < C_LEN; i++) {
printf("| %d| | | ", c[i]);
}
for(int i=0;i
你应该使用一个#定义C#LEN 3
并用它代替你的神奇数字3。您在每次迭代中循环打印出一个“|”,因此您的循环体不能真正简化,除了:
if(!(i % 4)) printf("%d", c[i/4]);
如果您只想打印0、4和8的内容,那么可以按4而不是1进行迭代,或者最好按1进行迭代(见下文)
输出为:
| 3| | | | 1| | | | 2| | |
如果这就是你想要的,我会写一份打印声明:
printf("| %d| | | | %d| | | | %d| | | ", c[0], c[1], c[2]);
或者,如果您希望一次在组上循环一次,只需迭代3次:
for (int i = 0; i < C_LEN; i++) {
printf("| %d| | | ", c[i]);
}
for(int i=0;i
您似乎正在尝试以4的倍数打印数组的元素。您可以通过创建任意大小的数组来概括程序,并使
for
循环如下:
int index = 0;
for (int i = 0; i < lange*4; i++)
{
printf("| ");
if (i == 0)
{
index = 0;
}
else if((i % 4) == 0)
{
index = i/4;
}
else
{
continue;
}
printf("%d",c[index]);
}
int索引=0;
对于(int i=0;i
您似乎正在尝试以4的倍数打印数组的元素。您可以通过创建任意大小的数组来概括程序,并使
for
循环如下:
int index = 0;
for (int i = 0; i < lange*4; i++)
{
printf("| ");
if (i == 0)
{
index = 0;
}
else if((i % 4) == 0)
{
index = i/4;
}
else
{
continue;
}
printf("%d",c[index]);
}
int索引=0;
对于(int i=0;i
@EugeneSh。是吗d对我来说,这看起来像是“案例范例”…你能解释一下你的需求吗。您试图实现的内容不清楚。@AnttiHaapala oops。不是,对不起。仍然不清楚,请阅读关于模运算符的内容。@EugeneSh。是吗d对我来说,这看起来像是“案例范例”…你能解释一下你的需求吗。您试图实现的内容不清楚。@AnttiHaapala oops。不是,对不起。仍然不清楚,请阅读关于模运算符的内容。