
正文
C语言1703808为什么,c语言为什么出现1703792
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
新手入门C语言求大神解释一下为什么我输出后会出现1703808
1、=1) 简单看了下,这行有问题,往文件里写的时候是把一个字符串写进去,stud[i]是一个struct,强行把它序列化的话,内存中的存储不是连续的,这样写就会写入一些没用的数据,导致出错。
2、导致输出越界。在printf(###);前面 加一句 b[cont]= \0;这样就可以了。
3、这里scanf指定逗号为输入的分隔符号。所以输入时数字和字符之间必须有逗号。scanf不指定分隔符时,默认以空白字符(空格、回车、制表符)为分隔符。PS:如果写%d%c不指定分隔符号。由于第二个变量是字符型,输入时中间不要加空格符,否则会将空白符号做为字符接收。
相关问答
Q1: C语言为什么结果一直是1703808
char 型是 一字节 有符号整型,只能表示 +127 到 -128 范围。197,198 超出 127, 被处理成补码 (负数)。如果改用 无符号 char 型 就可以用到 +255。unsigned char c1,c2;c1=197;c2=198;printf(c1=%d,c2=%d\n,c1,c2);这就不会打印出负值。
在double转换成int时,应当考虑到数值并不准确的问题,可以考虑自己要求的精度极限,比如是0.00000001,可以写成:printf(%d\n,(int)(a/pow(10,b-1)+0.000000005); 这样可以配合取整实现在那位上的四舍五入。
void num的max和main中的max以及min并不是同一个,main中的max和min都是未初始的值。
其实你这个程序是对的,可能是你输入有错,注意到这一句:scanf(%lf,%lf,%lf,&a,&b,&c);你的“格式控制”字符串中有逗号,因此输入时必须在三个数之间加逗号。C规定:如果在“格式控制”字符串中除了格式说明以外还有其 它字符,则在输入数据时应输入与这些字符相同的字符。
在编程语言里面,=表示赋值,==表示比较。if(n=k+1)的意思是如果给n赋值为k+1成功,则printf(是素数);所以你的程序应该一直输出“是素数”。
Q2: C语言中,程序为什么会崩溃?
C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。第一种:内存溢出 内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。
标准C函数未按要求调用,有时会出错误结果,有时会导致程序崩溃;试图修改不允许修改的指针。例如:int a[20], b[30];a=b; //试图将数组a所等价的指针a直接指向数组b,这肯定会出错 目前我只想到这4条。
程序设计的很重要一点就是要保证程序的稳定性,运行时崩溃就是稳定性不够,一般比较常见的就是数据类型不符、内存泄漏等错误造成的。
runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。
是不是你定义的数组在主函数里?栈溢出了。尽量把数组定义在主函数外,防止溢出。否则就有可能停止工作。
char word[]=是声明了一个长度为1的char类型数组,而在调用scanf函数的时候自然会溢出崩溃。
C语言1703808为什么的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言为什么出现1703792、C语言1703808为什么的信息别忘了在本站进行查找喔。

