我有以下代码,它使用输入数字,将第一位数字乘以3,然后打印出第一位数字。当我输入023时,它得到的是6而不是0。为什么?
#include <stdio.h>
void init_tableau2D(int **t ,int ligne ,int colonne){
int i,j;
for(i=0;i<ligne;i++){
for(j=0;j<colonne;j++){
printf("%d\n",t[0][0]);
}
}
}
int main()
{
int tab[3][2]={{5,8},{11,6},{37,45}};
/* Here I have allocated staticly a 2D table*/
init_tableau2D(tab,3,2);
return 0;
}
答案 0 :(得分:2)
您正在做
a=int(input())
So if input() = '023', int('023') will be 23. So a=23
b=str(a) => b='23'
int(b[0]) => c=2*3=6
您应该这样做:
a=input()
然后
c=int(a[0])*3
答案 1 :(得分:1)
如果您想保留输入的所有数字,则不应将输入内容转换为int
:
a=input('Enter a number: ')
c=int(a[0])*3
print(c)
如果输入023
,则返回0
。
答案 2 :(得分:1)
您可以使用while
循环不断询问用户仅数字输入,直到用户输入数字为止,并且您应使用list()
构造函数将数字转换为列表:>
while True:
a = input('Enter digits: ')
if a.isdigit():
break
print('Please enter only digits.')
b=list(a)
c=int(b[0])*3
print(c)