为什么数组在开头打印零而最后一位丢失?
Why does the array print zero in the beginning with the last digit missing?
我正在尝试分隔数字的数字并打印这些单独的数字。当我这样做时 -:
#include <stdio.h>
#define size 100
int main()
{
int num, remainder, arr[size], i=0;
printf("Enter a number : ");
scanf("%d", &num);
while(num != 0)
{
remainder = num%10;
arr[i]=remainder;
i++;
num /= 10;
}
for(int j=i; j>0; j--)
printf("%d\t", arr[j]);
printf("\n");
return 0;
}
显示-:
Output
我不知道为什么会这样。请帮助我。
谢谢。
这应该有效:
#include <stdio.h>
#define size 100
int main()
{
int num, remainder, arr[size], i=0;
printf("Enter a number : ");
scanf("%d", &num);
while(num != 0)
{
remainder = num%10;
arr[i]=remainder;
i++;
num /= 10;
}
for(int j=i-1; j>=0; j--)
printf("%d\t", arr[j]);
printf("\n");
return 0;
}
我已将 for(int j=i; j>0; j--)
更改为 for(int j=i-1; j>=0; j--)
。
或者使用这段代码,速度更快也可以接受0和任何int值
#include <stdio.h>
int main()
{
int num;
int i = 1000000000;
int first_index = 0;
printf("Enter a number : ");
scanf("%d", &num);
while (i>1){
if((num%i*10)/i == 0 && first_index == 0){
i = i/10;
if(i==1){
printf("0");
}
continue;
}
first_index = 1;
printf("%d ", (num%i*10)/i);
i = i/10;
}
}
我正在尝试分隔数字的数字并打印这些单独的数字。当我这样做时 -:
#include <stdio.h>
#define size 100
int main()
{
int num, remainder, arr[size], i=0;
printf("Enter a number : ");
scanf("%d", &num);
while(num != 0)
{
remainder = num%10;
arr[i]=remainder;
i++;
num /= 10;
}
for(int j=i; j>0; j--)
printf("%d\t", arr[j]);
printf("\n");
return 0;
}
显示-:
Output
我不知道为什么会这样。请帮助我。
谢谢。
这应该有效:
#include <stdio.h>
#define size 100
int main()
{
int num, remainder, arr[size], i=0;
printf("Enter a number : ");
scanf("%d", &num);
while(num != 0)
{
remainder = num%10;
arr[i]=remainder;
i++;
num /= 10;
}
for(int j=i-1; j>=0; j--)
printf("%d\t", arr[j]);
printf("\n");
return 0;
}
我已将 for(int j=i; j>0; j--)
更改为 for(int j=i-1; j>=0; j--)
。
或者使用这段代码,速度更快也可以接受0和任何int值
#include <stdio.h>
int main()
{
int num;
int i = 1000000000;
int first_index = 0;
printf("Enter a number : ");
scanf("%d", &num);
while (i>1){
if((num%i*10)/i == 0 && first_index == 0){
i = i/10;
if(i==1){
printf("0");
}
continue;
}
first_index = 1;
printf("%d ", (num%i*10)/i);
i = i/10;
}
}