#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=8;i++)
{
for(j=i+1;j<=9;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(i=0;i<=9;i++)
printf("%d\t",a[i]);
return 0;
}
我用的是visualC++,输入十个数结果全是负的,我再想想,谢谢了
本回答被提问者采纳【C语言】有没有大佬知道这个程序为什么会输出一个负数?
程序会输出负数的原因是,在这个程序中你没有对每次运算的结果进行检查,因此当乘积超出了long类型的最大值时,就会产生溢出,导致结果为负数。为了避免这个问题,你可以在每次运算后检查结果是否已经超出了long类型的范围,并在必要时退出循环。可以这样改:include<stdio.h> main(){ long i;i=chengji(...
C语言,为啥总是输出负数
可能的原因太多,可以肯定程序输出不在你的预想,代码有错。错误代码输出的结果没有参考性。先检查代码。比如:一、运算式子有没错。二、调用了未赋值且未初始化的变量。三、数组访问越界。等等。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 听不清啊 高粉答主 2019-04-20 · 每个回答都超有意思的...
C语言 为什么我这个程序输入正确数后 结果总为负数
那么长的结果 你不把数据类型改长一点 那么就会数据溢出 变成负数的
C语言问题,输出结果总是负数,求教
你定义的类型不一致,前边定义是双精度double的实数,后边输出用的是%f单精度的浮点型,这两个数精度差太多,在C++里double输出用的是%lf,你看看这里是不是,要么把前边类型改成float,要么后边输出改成%lf
c语言问题,为什么会输出负数
这个问题有多种可能,不一而足。算法有错误,最终计算结果是负数。输出自然会是负数。例如:int a=1;int b=a-2;printf("b=%d",b);\/\/输出结果:b=-1超过变量类型的最大取值范围,发生溢出。例如Turbo C里int是16位,取值范围-32768~32767。如果计算过程当中,数值超过32767,由于补码的关系。
一道C语言题,为什么输出的结果为负数?
你的主要原因是变量w没有初始化,是内存中的遗留值,导致最后输出的结果中全部学生的平均值为2000多的一个负数。修改后源码软下:include <stdio.h>#include <stdlib.h>#define input scanfstruct student{ char num[10]; char name[10]; int score[3]; int total; float avr;}...
c语言程序 调错 运行出负数
所以楼主的程序的问题并不在这儿。而在数组访问越界。楼主,C语言里面数组的下标是从0开始的。所以一个10元素的数组,合法的下标是从0到9。a[0]是第一个元素,a[9]是第十个元素。你的while循环和for循环里面数组的下标都是从1开始的,所以不管是你往数组里面存东西还是从数组里面取东西,你都是从...
为什么我c语言取随机数取出来的都是负数啊?
确实,用C是负数 因为C的编译器对于大于32767的int型数(RAND_MAX+1=32768)处理上变成了一个负数-32768,这是机器在处理上它被规定成这样了。所以运算以后还是个负数了。
C语言下面的代码为什么我每次运行都会出现负数哪里出错了。
main(){ double zhijing,zhouchang; printf("请输入直径:"); scanf("%lf",&zhijing);\/\/这里改了 zhouchang = zhijing * PI; printf("周长=%lf\\n",zhouchang);\/\/这里改了 return 0;}小错误 不过 格式 很重要 啊 亲 有问题 请联系我 ...
定义char时 超过127的时候 输出是一个负数 这个负数是怎么算出来的 求...
char c=197;printf("%d\\n", c); \/\/输出-59 A printf("%u\\n", c&0x000000ff); \/\/输出197 B return 0;} c=197, 这句话,c语言编译器理解为你要将一个无符号数197存放到一个字节c中,但c实际上被是char,也就是编译器把c理解为有符号字节。所以A处(把c当成有符号数)把二...