C语言问题,向大神求助,为什么数字输入后变了

2024-12-03 22:32:18
推荐回答(4个)
回答1:

你的数组a[100]定义为了char型,而char型只有8位,数值只能从-128到127。char型确实可以当作整数来用,我们单片机编程都经常这样用,单片机内存较小,我们要根据变量的需求,定义好长度,用什穗祥么类型最好是自己算过的。char是有符号8位长度的数据类型2的8次方为256,既然是有符号碧族穗,最高位就作为符号位为0则是正数,为1则是负数,所以范悔卜围是从-128到127。

回答2:

如果是char, 最大整数是-128~127,所以256早就溢出了。

回答3:

代码卖迟如下

#include
void main(){
 int a[10],x;
 int i,j;
 printf("输入需要排序的十个数,空格隔戚大开\n");
 for(i=0;i<10;i++)
 {
  scanf("%d",&a[i]);
 }

 for(i=0;i<高配竖10-1;i++)
 {
  for(j=0;j<10-1-i;j++)
  {
   if(a[j]>a[j+1])
   {
    x=a[j];
    a[j]=a[j+1];
    a[j+1]=x;
   }
  }
 }
 
 printf("排序后:\n");
 for(i=0;i<10;i++)
 {
  printf("%d  ",a[i]);
 }
 printf("\n");


 }

回答4:

char a[100];换成int a[100];