三九宝宝网宝宝教育教学论文

C语言程序编译问题

01月04日 编辑 39baobao.com

[编写一个c语言程序不断地要求输入成绩分数如果分数小于0或者]#include int main() {int a,z=0; for(;;){ scanf("%d",&a); if(a100) printf("你输入的是无效分数\n"); else z=z+a; printf("当前分数:%d\n",z); if(z>999) break; } printf("总分是:%d",...+阅读

printf和scanf的缺陷

1.非类型安全 函数原型使编译系统对它进行必要的类型检查,免除了许多错误,但对于printf()和scanf(),它却毫无帮助。printf()和scanf()所期望的参数个数与类型取决于包含在第一个参数中的信息,而这一信息对编译器是没有用的。编译器无法检查对printf()和scanf()的调用的正确性。 例如,下面的函数企图输入和输出异于格式符的数据:

#include int j=10; float f=2.3; void fn() { printf("%d",f); scanf("%d",&f); scanf("%d",j); printf("%d","abcde"); } 在int型占两个字节的情况下,语句printf("%d",f);只输出f变量中前2个字节的内容,并按int型数据格式进行解释; 语句scanf("%d",&f);只输入到f变量中前2字节中, 按int型格式进行存放,而后面两个字节内容却没有改变; 语句scanf("%d",j);将键入值存放到地址为OxOOOA的内存空间中; 语句printf("%d","abcde");输出"abcde"的地址值,而不是想要的字串。 上面这些语句,用错了数据类型,而编译都能通过。为此,程序员将化更多的代价在程序运行中出现的错误诊断上。 特别对于scanf()中的错误,往往是致命的。

2.不可扩充性 printf()和scanf()知道如何输入输出已知的基本数据类型值,但是,c++程序中大量的类对象,其输入输出格式是未预先定义的,这就希望输入输出语句能够更加灵活与可扩充。 prinff()和scanf()却无能为力,它们既不能识别,也不能学会如何识别用户定义的对象。 例如,下面的函数企图输人和输出一个类的对象: class A{/*...*/}; A a; //... void fn() { printf("%?",a); //?表示不知以什么格式符来识别A的对象 scanf("%?",&a); }

以下为关联文档:

讲给定的角度值转化为对应的弧度值的c语言程序C语言中,将给定的角度值转化为对应的弧度值,可以用如下的方法: 弧度=圆周率*角度/180 参考代码如下: #include <stdio.h> #define PI 3.1415927 int main(){ double degree; pri...

C语言程序设计求素数问题#include<stdio.h> #include<math.h> /* input: num, num should >0 return: 1 - 是质数 0 - it is NOT a prime number 不是质数 note: 只需要计算到num的平方根处。 */ int...

C语言程序求素数问题#include <stdio.h> int main() { int i,n; scanf("%d",&i); for(n=2;n<i;n++) { if(i%n==0) { printf("不是素数"); return 0; } } printf("是素数"); return 0; }...

哪位大神帮忙把下面c语言程序注释一下再详细解释一下!跪谢了注释就以C的注释格式加在源程序行后面吧: /* 这前面几行包含库文件和函数原型的定义就不用解释了吧 */ #include#includeint menu(void); void jiami(void); void (*ptr)(voi...

c语言程序代码注释int driver=EGA,mode=1;\\将来要设置显示模式是EGA模式1,现在只是把模式定下来 int data[]={7,3,12,6,9,5,8,11};\\数组 int i,j,xstep=70,ystep=20;\\i j是循环计数器 剩下2个...

设计c语言程序按照下面的近似公式计算展开全部 #include #include #include long f(int n) { if(n == 1 ) { return 1; } else { return n*f(n-1); } } double sum(int n) { double res = 0; int i; for(i = 1;...

c语言编译tc2 0怎么用拷贝一些给你,一般编译器要注意的就是include目录和lib目录,还有就是编译器调用的tcc,tlink之类的要在路径内。不过简单的菜单还是学一下吧,学编程还是需要一些英语的。⒈首先...

求贪吃蛇的C语言程序 TC20#define N 200 #include#include#include#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0;/*...

c语言超级简单代码编译问题你的问题在于把函数声明放在了主函数内部,而且函数实现时是不能加;的 而且返回z后,函数的调用结束了. getch();是无用的 #include<stdio.h> int max(int x,int y); void main() {...

推荐阅读
图文推荐