gpt4 book ai didi

c - 在循环过程中更改变量时出现问题

转载 作者:行者123 更新时间:2023-11-30 18:01:53 25 4
gpt4 key购买 nike

所以赋值是要求一个在一定范围内的变量,打印数字的各个数字,数字之间有三个空格。例如 1234 应该打印

0 1 2 3 4
1 2 3 4
2 3 4
3 4
4

我很确定我已经完成了大部分分配,只是在更改循环中的变量号时遇到了麻烦。该数字将自己排序到正确的 if 语句中,但当它循环时,而不是数字向下一位(即 2343 到 343),它所做的只是打印相同的数字 5 次。我在我的书中进行了研究并在网上查看,但我没有看到它。这可能很简单,只是不确定是什么。代码如下:

#include <stdio.h>
#include <stdlib.h>
void loopingDigitprinter(int digit);
int division(int* digit);

int main()
{
int digitPrint;



printf("Please enter a number between 0 and 32,767: ");
scanf("%d", &digitPrint);
loopingDigitprinter (digitPrint);

return 0;
}

void loopingDigitprinter(int digit)
{
int loopLine= 0;
int thousand;
int hundred;
int original;
original = digit;



while(loopLine < 4)
{
if (digit > 10000 && digit <= 32767)
{
thousand = digit/ 1000;
hundred = digit % 1000;
printf("%02d%03d\n",thousand, hundred);
digit %= 10000;


}
else if (digit < 10000 && digit > 1000)
{

if (original > 10000)
{ thousand = digit/ 1000;
hundred = digit % 1000;
digit %= 1000;
printf("%01d%03d\n",thousand, hundred);
}
else
{
thousand = digit/ 1000;
hundred = digit % 1000;
printf("%02d%03d\n",thousand, hundred);
digit %= 1000;
}

}
else if (digit < 1000 && digit > 100)
{
if (original > 10000)
{
hundred = digit % 1000;
printf("%d\n", hundred);
digit %= 100;
}
else if (original < 10000 && original > 1000)
{
thousand = original / 1000;
hundred = digit % 1000;
printf("%d%d\n",thousand,digit);
printf("%d\n", digit);
digit %= 100;
digit %= 100;

}
else
{
thousand = digit/ 1000;
hundred = digit % 1000;
printf("%02d%03d\n",thousand, hundred);
digit %= 1000;
thousand = original / 1000;
hundred = digit % 1000;
printf("%d%d\n",thousand,digit);
printf("%d\n", digit);
digit %= 100;
printf("%d\n", digit);
digit %= 10;
printf("%d\n", digit);
}

}
else if (digit < 100 && digit > 10)
{
if (original > 10000)
{ hundred = digit % 1000;
printf("%d\n", hundred);
digit %= 10;
printf("%d\n", digit);
}
else if (original < 10000 && original > 1000)
{
thousand = original / 1000;
hundred = digit % 1000;
printf("%d\n",hundred);
digit %= 10;
printf("%d\n", digit);
}
else if (original < 1000 && original > 10)
{
thousand = digit/ 1000;
hundred = digit % 1000;
printf("%02d%03d\n",thousand, hundred);
digit %= 1000;
thousand = original / 1000;
hundred = digit % 1000;
printf("%d%03d\n",thousand,digit);
printf("%03d\n", digit);
digit %= 100;
printf("%d\n", digit);
digit %= 10;
printf("%d\n", digit);

}
else
printf("1");
}

else if(original > 0 && original < 10)

{
printf("0000%d\n", original);
printf("000%d\n", original);
printf("00%d\n", original);
printf("0%d\n", original);
printf("%d\n", original);
break;
}



loopLine++;
}

return;
}

最佳答案

我不知道你在那里做什么,因为我没有阅读代码。

但请引用我的示例代码。它几乎满足了需要

#include <stdio.h>
#include <string.h>

int main(int argc, char*argv[]){

int n,k,i=0;

printf("Enter a number please\n");
scanf("%d",&n);

while(i<=n){

for(k=i;k<=n;k++){

printf("%d ",k);

}

printf("\n");
i++;
}

return 0;
}


Output
------
0 1 2 3 4
1 2 3 4
2 3 4
3 4
4

关于c - 在循环过程中更改变量时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com