《C语言程序设计第一次讨论.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第一次讨论.ppt(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六小组组长:周杰组员:刘畅、陈宏臻PPT制作人:周杰壹壹贰贰叁叁程序改错题程序填空题程序编程题改错题 一、程序功能:运行时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333程序:#include void main()int i,a,n;long t=0;/*1*/s=0;scanf(%d%d,&a,&n);for(i=1;i=n;i+)/*2*/t=t*10+i;s=s+t;s=s*a;printf(%ldn,s);/int s=0;int s=0;(定义s为整形变量,因为前面已经定义了long也为整形的一种,而我们要把s放到long里面。
2、)/t=t*10+1t=t*10+1;(初始i=1从1开始一直到n)二、程序功能:运行时输入n,输出n的所有质数因子。(例如:n=13860,则输出2、2、3、3、5、7、11)#include#include void main()void main()int n,i;int n,i;scanf(%d,&n);scanf(%d,&n);/*1*/*1*/i=1;i=1;while(n1)while(n1)if(n%i=0)if(n%i=0)printf(%dt,i);printf(%dt,i);n/=i;n/=i;else else /*2*/*2*/n+;n+;一个大于1的自然数中,除了1
3、和此整数自身外,不能被其他自然数整除的数)/i+;/i+;/i=2;/i=2;填空题一、程序功能:找出100999之间所有的Armstrong数。所谓Armstrong数是指这个3位数上数字的立方和等于自身。(例如:若371=3*3*3+7*7*7+1*1*1,则371就是Armstrong数)#include#includevoidmain()inti,a,b,c;for(i=100;i=999;i+)a=i/100;()c=i%10;if()printf(%disaArmstrongnumber!n,i);b=i/10%10;i=(a*a*a+b*b*b+c*c*c)i是三位数,除以10之
4、后就是两位数,然后除以10求余就是十位数。表示a的立方,b的立方,c的立方和。二、将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串的形式输出。(例如:输入十进制数79,将输出十六进制4f)#include#includechartrans(intx)if(x10)return0+x;elseintDtoH(intn,char*str)inti=0;while(n!=0)n/=16;i+;returni-1;voidmain()inti,k,n;char*str;scanf(%d,&n);k=DtoH(n,str);for(i=0;i=k;i+)printf(%c,st
5、rk-i);returna+x-10;stri=trans(n%16);解题思路:其实转换成十六进制和转换成二进制一样理解就可以了。也是除基取余法。基是2,8,16。第一个子函数trans是将数字转换成十六进制的字符(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)所以第一空是在处理10、11、12、13、14、15转换成A,B,C,D,E,F的功能;第二空:是将余数存入数组str里面,但是这个余数要经过trans转换,就是本题的特殊之处。编程题编程题一、已知公鸡每只一、已知公鸡每只5 5元、母鸡每只元、母鸡每只3 3元、小鸡元、小鸡1 1元元3 3只。只。求出用求出用1001
6、00元买元买100100只鸡的解。将已得到的解按公鸡、只鸡的解。将已得到的解按公鸡、母鸡和小鸡的只数以母鸡和小鸡的只数以”%d,%d,%dn”%d,%d,%dn”的格式写入到考的格式写入到考生文件夹下的新建文件生文件夹下的新建文件Design2.datDesign2.dat#includevoidmain()FILE*p;intx,y,z;if(p=fopen(design2.dat,w+)=NULL)printf(cannotopenfile);return;for(x=0;x=20;x+)/x表示公鸡数,因为100元最多只买20只公鸡,所以x上限为20for(y=0;y=33;y+)/y表
7、示母鸡数,因为100元最多只买33只母鸡,所以y上限为33if(x*5+y*3+(100-x-y)/3)=100)/当满100元时,输出三种鸡数目fprintf(p,%d,%d,%dn,x,y,100-x-y);fclose(p);二、将数组a的每1行均除以该行上的主对角元素(第一行同除以a00,第2行同除以a11),),然后将a数组写入到考生文件夹中paper子文件夹下的新建文件design1.dat#includevoidmain()floataNNinti,j;FILE*p;inti,j;fp=fopen(“C:Design1.dat”,“w”);if(fp=NULL)printf(PleaseInputtheaNN:n);for(i=0;iN;i+)for(j=0;jN;j+)scanf(%f,&aij);for(i=0;iN;i+)for(j=0;jN;j+)if(i!=j)aij=aij*1.0/aii;aii=1;printf(Turnafterplacing:n);for(i=0;iN;i+)for(j=0;jN;j+)fprintf(p,%10.6f,aij);fprintf(p,n);fclose(p);/就是整数除整数 他会丢掉小数的,如1/2=0但是1*1.0/2=0.5/新建文件design1.dat谢谢观看
限制150内