c语言解惑问题

C语言问题 求助!!!_百度知道
C语言问题 求助!!!
# include &stdio.h&# include &stdlib.h&void main (){float aver[10];float *j,*p,*s,*k,*b;j=aver,*p=NULL,*s=NULL;void pinjun(float *p,float 长袱馆禾弋鼓龟态骇卡*s,float *j);p=(float *)malloc(sizeof(float)*10);s=(float *)malloc(sizeof(float)*10);k=p,b=s;for(m=0;m&10;m++)scanf(&%f&,p++);for(m=0;m&10;m++)scanf(&%f&,s++);pinjun(k,b,j);printf(&the aver is %f&,aver);for(m=0;m&10;m++)printf(&%f &,aver[m]);}pinjun(float *p,float *s,float *j){int i=0;for(i=0;i&10;i++)*(j+i)=*(p+i)+*(s+i);return(i);}在TURBO C 环境下
显示scanf:floating point formats not linkedAbnormal program termination求助求助~~~~~
首先感谢大家的帮助!对于一楼,我试过在前面加浮点运算,但还是同样显示scanf:floating point formats not linkedAbnormal program termination 但我换成int 后,的确可以运行了。
但是用浮点型如何解决呢??? 原题是 已知一个班有10名同学英语考试成绩为{88.5,76,
83.5, 92,96.5,80,62,85.5,74,87.5},平时成绩为
{4.0,3.5,4.5,2.0,3.0,3.5,4.0,2.5,3.5,4.0}长袱馆禾弋鼓龟态骇卡,主函
数中用C的指针分配函数:malloc()分配两块连续的
存储单元存放以上的考试成绩和平时成绩,用一个函
数计算该班同学的考试平均成绩和各同学的最终成绩
(考试成绩+平均成绩),在主函数中将以上计算结果
打印出来。
提问者采纳
按照楼主的意思重新写了一段代码,并且在我的环境下编译通过并且可以执行。我把这些原始数据都放到数组里,在创建了连续空间后自动load进去了。如果楼主需要手工一个长袱馆禾弋鼓龟态骇卡一个输入的话,请在for循环里采用注释掉的那段代码。如果还有问题,敬请追问。#include &stdio.h&#include &stdlib.h&#include &malloc.h&double get_total_and_average(float *sc_t, float *sc_c, float *sc_all){ float total = 0.0; for(i=0; i&10; i++) {
sc_all[i] = sc_t[i] + sc_c[i];
total += sc_all[i]; } return total / 10.0;}void main(){ float *score_test, *score_common, *score_ int len = sizeof(float) * 10; float data_load[2][10] = {{88.5,76,83.5, 92,96.5,80,62,85.5,74,87.5},
{4.0,3.5,4.5,2.0,3.0,3.5,4.0,2.5,3.5,4.0}}; score_test = (float *)malloc(len); if(score_test == NULL) {
printf(&memory alloc error.\n&); } score_common = (float *)malloc(len); if(score_common == NULL) {
free(score_test);
printf(&memory alloc error.\n&); } score_total = (float *)malloc(len); if(score_total == NULL) {
free(score_test);
free(score_common);
printf(&memory alloc error.\n&); } for(i=0; i&10; i++) {
* if you want to input the scores from output one by one, please use the codes in this comments
printf(&please input test-score for student %d : &, i+1);
scanf(&%f&, score_test + i);
printf(&please input common-score for student %d : &, i+1);
scanf(&%f&, score_common + i);
/* load the data from the arrays automatically */
score_test[i] = data_load[0][i];
score_common[i] = data_load[1][i]; }average = get_total_and_average(score_test, score_common, score_total); printf(&Average score is %f\n&, average); for(i=0; i&10; i++) {
printf(&Total score of student %d is %f\n&, i+1, *(score_total+i)); } free(score_test); free(score_common); free(score_total);}
能告诉我 我编写的程序 为啥会出现错误呢
就是显示scanf:floating point formats not linkedAbnormal program termination
答楼主,我在昨天回答的时候您可能没注意看我一开始的分析*p=NULL,*s=NULL是不对的。因为p和s你已经定义成float *就是float型的指针,*p和*s就是这个指针指向的float值。而你定义了p和s之后并没有赋初始值,就直接使用,并且赋值NULL也就是0。我觉得应该是p=NULL和s=NULL,而不应该是*p和*s。
其他类似问题
按默认排序
其他5条回答
float *j,*p,*s,*k,*b;j=aver,*p=NULL,*s=NULL;很明显对指针变量你p,s你没有赋值,即不知道指向哪儿,就使*p和*s=NULL,是不正确的应该改成p=NULL;s=NULL;你的函数声明是void pinjun(float *p,float *s,float *j);而定义时是:pinjun(float *p,float *s,float *j){int i=0;for(i=0;i&10;i++)*(j+i)=*(p+i)+*(s+i);return(长袱馆禾弋鼓龟态骇卡i);}是不正确的,1.定义时没有函数类型,即返回值类型,但是你声明的是void型,是没有返回值的,所以改成,void pinjun(float *p,float *s,float *j),并去掉return i你的程序有些混乱建议好好修改下
TC的浮点数问题。就是浮点输入的for不能直接就开始for scanf(&%f&)修改方案:在程序的前面加一些浮点运算就可以比如main(){ float TempFloat=1.0+1.0; 你的代码} 我这里没有问题。代码里面还有一些问题,你也找找吧。你的编译器版本是多少?
TURBOC 3.0
有几个问题。第一:j=aver,*p=NULL,*s=NULL;应该改为j=aver,p=NULL,s=NULL;第二:pinjun()这个函数前面少了void,因为系统在默认情况下是int类型。所以return(i);也要去掉。第三:printf(&the aver is %f&,aver);数组不能以这种形式输出,应该像你下面的输出方式一样用循环的方式实现。 还有,程序并没有实现平均值的计算。
把上述的float改成double
# include &stdio.h&# include &stdlib.h&void main (){float aver,sum[10];float *j,*p,*s,*k,*b;void pinjun(float* p,float* s,float* j);aver=0;j=sum,p=NULL,s=NULL;p=(float *)malloc(sizeof(float)*10);s=(float *)malloc(sizeof(float)*10);k=p,b=s;for(m=0;m&10;m++)scanf(&%f&,p+m);for(m=0;m&10;m++)scanf(&%f&,s+m);pinjun(k,b,j);for(m=0;m&10;m++)aver=aver+sum[m];aver=aver/10;printf(&the aver is %.2f:\n&,aver);for(m=0;m&10;m++)printf(&%.2f &,sum[m]);}void pinjun(float* p,float* s,float* j){int i=0;for(i=0;i&10;i++)*(j+i)=*(p+i)+*(s+i);}
c语言的相关知识
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言问题..
C语言问题.. 20
鄂 ,最近编程玩的时候发现很多时候自己弄出来都要加一个systempause命令才能看到结果,要不然就dos一闪而过了~
可是看了很多代码,大多数都没有systempause啊getch啊什么的暂停命令的代码,那编写出来怎么弄啊?一应用就dos一闪而过,编出来干嘛鄂?....难道只是给人看个代码而已不编译出来吗? - -
顺便问一下....VC安装的位置是什么...最好能把默认的安装地址发一下..我装了不小心删掉了快捷,.开始菜单也没有...懒得用搜索.....
补充:别答非所问....COPY的一律不采用...
最简单的方法。运行程序是使用ctrl F5,而不是直接使用F5。即使用调试模式而不是直接运行程序,这样,程序起来后会有一个“Press any key to continue”并使程序停下来。
在return语句之前加上“system("pause");” 这样,可以使用F5直接运行程序,程序起来后也会出现“Press any key to continue”并使程序停下来。
为什么大多数的成品代码都没有pause?他们编出来不运行么?
这我就不懂了&& 你& 到百度上问问& 比多多了& 这不是广告不是广告& 希望能过
还有..如果我要拿到或者是ACM的前十名,C需要达到什么程度?
已经可以出山了,&& 大侠!
维护世界的和平就看你了、、、
......悲摧
其他回答 (1)
目前最流行的C语言有以下几种:    ·Microsoft C 或称 MS C    ·Borland Turbo C 或称 Turbo C    ·AT&T C   这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美C语言是目前世界上流行、使用非常广泛的高级程序设计语言。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等......C语言的发展历史C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。C语言版本   目前最流行的C语言有以下几种:    ·Microsoft C 或称 MS C    ·Borland Turbo C 或称 Turbo C    ·AT&T C   这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。面向对象的程序设计语言   在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。C语言的特点1. 简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. 运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。3. 数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。4. C是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。5. C语法限制不太严格、程序设计自由度大一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。6. C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。7. C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低10へ20%。8. C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。C源程序的结构特点1.一个C语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。书写程序时应遵循的规则当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。C语言有很多的优点指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素.C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java又进一步提高了安全性。C语言的缺点C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别
等待您来回答
编程领域专家C语言问题_百度知道
h&;} 上面的程序编译后有1个错:%d\ int i.0f在数组中的下标是,k;=n)
return -1。(查找使用函数实现)#include &lt,&k),float k,请问在哪里啊;
scanf(&; if(i& if(flag==-1)
printf(&pn;i++)
if(x[i]==k)10;);%f&quot,k;?如果存在;; for(i=0;i&lt:\i& printf(&quot,输出该实数在数组中下标:\n& for(i=0; printf(&quot,不存在;please input array a,k),保存在数组中,flag; else
}int found(float x[];n&); else
printf(&%; flag=found(a,k,flag);void main(){ float a[10],n&%,int n){ i++)
scanf(&quot,然后再输入一实数,10);n&%f&quot.0f没有找到&#92,输出 –1,输出该实数在数组中是否存在从键盘上输入10个实数,&a[i])
提问者采纳
n&quot,望采纳/ printf(&quot.0f没有找到&#92.h&gt, for(i=0.里面有个;%f&/i&pi&lt/ if(flag==-1)
printf(& flag=found(a;有两点错误; printf(&%;/n&please input array a,%; if(i& else
printf(&,i++)
if(x[i]==k)10;}int found(float x[];这行/n;
scanf(&;n&quot,k); for(i=0,&a[i]),int n);/ ),flag,k:%d\一下是改好的程序#include &lt,&k).0f在数组中的下标是,k,int n){ i++)
scanf(&quot,flag);,k;程序该你改好了,main()函数找不到;&#47,found()函数没有在main()函数前声明;);stdio:&#92。2;成中文的了;号写&#47:1:\int found(float x[];=n)
return -1;;n& else
%f&void main(){ float a[10],在return -1,10)
提问者评价
还是你完美,谢谢你!也谢谢其他回答的朋友!
其他类似问题
按默认排序
其他1条回答
int found(float x[]你的found函数写在了main函数之后,int n).只需在main函数之前加入,float k,所以要函数声明一下
c语言的相关知识
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁豆丁精品文档: c语言试题及答案 c语言面试题及答案 c语言题库及答案 c语言笔试题..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C语言题目及答案
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口补充:输入一批整数,输入0结束。要求输出所有奇数,奇数间用空格分隔,显示在一行上。同时统计并输出奇数的个数和正数的平均数,
补充:输入一批整数,输入0结束。要求输出所有奇数,奇数间用空格分隔,显示在一行上。同时统计并输出奇数的个数和正数的平均数,
补充:要完整编程
不区分大小写匿名
代码:
&
#include&stdio.h&
void main(){&int s[100],i=0,z=0,t,j=0;&float sum=0.0;&printf("请输入一批整数,输入0结束:\n");&scanf("%d",&t);&while(t)&{&&if(t%2!=0)&&{&&&s[i]=t;&&&i++;&&}&&if(t&0)&&{&&&sum=sum+t;&&&z++;&&}&&scanf("%d",&t);&}&sum=sum/z;&printf("奇数的个数是: %d\n",i);&printf("所有的奇数是:\n");&for(j=0;j&i;j++)&&printf("& %d",s[j]);&printf("\n正数的平均数是: %f\n",sum);}
&
图:
&
B)k=5=3+2;
D)s1=s2=0; 我选择的是:D 答案是:B 答:D正确的,变量之间可以相互赋值,数字也可以赋给变量 B错误,K=5正确,但“3+2”不能赋值给5 技巧:考的“赋值”,从右往左看 如果把B改成(k=5)=3+2 就相当于把3+2的结果赋给K,就正确了。
我只知道这个
#include &stdio.h&
#include&stdlib.h&int main(){&&&& int n,i=0,j=0,k=0,sum=0;&&& int array[30];&&&&&&& printf("请输入整数: ");&& &&&& do{&&&&&&&&&& scanf("%d",&n);&&&&&&&& if(n&0)&&&&&&&& {&&&&&&&&&& sum=sum+n;&&&&&&&&&& j++;&&&&&&&& }&&&&&&&&& if((n%2)==0)&&&&&&&&&&&&&&&&&&&&&&&&&& else&&&&&&&&&&&&&& array[i]=n;&&&&&&&&&&& i++;&&&&&&&&& }while(n!=0);&&& for(k=0;k&i;k++)&&& {&&& printf("%d&&& ",array[k]); &}&&& printf("奇数出现了%d次\n",i); &&& printf("正数平均数为%f",(float)sum/j);&&&& system("pause");&&& return 0;}&
楼猪还在吗?快给分
&这个是我的c语言课程的作业,谢谢采纳!
//程序功能:从键盘上输入一批正整数(以零或负数为结束标志),求其中的奇数和。//提&&& 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include &stdio.h&int main( ){&&& int x,&&& scanf("%d", &x);&//请在两条星线之间填入相应的代码,读入一批正整数(以零或负数为结束标志),求其中的奇数和。&//(要求使用循环结构)&/************************************************************************************/&&& sum=0;&&& while(x&0)&&& {&&&&&&& if(x%2!=0)sum+=x;&&&&&&& scanf("%d",&x);&&& }&&& /************************************************************************************/&&& printf("%d\n", sum);}
已完整实现你的要求,请留下邮箱,我将把源代码发给你。效果截图如下:
這題本身並不困難, 我就不做了.有個問題需要討論: 就是緩衝區的問題.由於是輸入0結束, 事先不知道該準備多大的數組.所以只能設一個大概的長度. 等數組空間用完時再另外申請空間, 然後把就原有的數據搬過去.
如果*(*p2+i)%2的值为0,输出*(*p2+i)的值,然后n++之后又回到for循环
nrwyhbqhxf非常愿意替你回答问题噢!gqoepkyttp
可以的话,就采纳我吧!
这样的就300分…………尼玛 倒霉啊 来迟 了
定义一个数组int a[5]={10,20,30,40,50};计算各元素之和
#include&stdio.h&int main(void){&printf("本程序用来判断整数是否为奇数。");&&&printf("请输入一批整数:\n");&while(scanf("%d",&num)==1){&& if(num!=0)& & if(num%2!=0)& & & &printf("5%d");}&&return 0;}
#include&stdio.h& int even(int n) {
if(n%2==0)
return(m); } void main() {
int n,b,a=0;
printf(&input integers:\n&);
scanf(&%d&,&n);
b=even(n);
/*这里判断应该用‘==’*/
while(n&0);
/*这里判断条件应该是n&0*/
printf(&a=%d\n&,a); }
等待您来回答
编程领域专家

我要回帖

更多关于 c语言入门 的文章

 

随机推荐