У меня возникает следующая проблема при печати неподписанных чисел. Вот что происходит: Когда я ввожу отрицательное значение в массив и затем пытаюсь его распечатать, я не могу напечатать номер, но будет напечатано другое количество.printf not printing unsigned int
int cant;
int a[30][30];
int printequation(){
int x,y;
for (x=0;x<cant;x++){
for (y=0;y<cant+1;y++){
if(y==cant){
printf(" = %d",a[x][y]);
}else{
if (y==0)
printf(" %dX%d",a[x][y],(y+1));
else{
if(a[x][y]>0){
printf(" + ");
}else{
printf(" - ");
}
printf("%uX%d",a[x][y],(y+1)); /*<-----------------here*/
}
}
}
printf("\n");
}
return 0;
}
Вот пример:
input: -2 -2 -2
output: -2x1 -4294967294x2 = -2 /*here It should print -2 but can't get it*/
'а [х] [у]' не является 'беззнаковое int' но' int', вы не можете использовать 'u' спецификатор преобразования , – ouah
Но я использую% u, другой% d предназначен для печати другого номера – user2461687
'a [x] [y]' и '(y + 1)' оба типа 'int', а не' unsigned int'. Почему вы используете '% u'? –