c语言程序详解110.doc
- 文档编号:1695233
- 上传时间:2022-10-23
- 格式:DOC
- 页数:26
- 大小:172.50KB
c语言程序详解110.doc
《c语言程序详解110.doc》由会员分享,可在线阅读,更多相关《c语言程序详解110.doc(26页珍藏版)》请在冰豆网上搜索。
//对data.txt文件写入10条记录
#include
main()
{FILE*fp;
inti;
floatx;
fp=fopen("d:
\\date.txt","w");
for(i=1;i<=5;i++)
{scanf("%f",&x);
fprintf(fp,"%f\n",x);
}
fclose(fp);
}
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
#include
#defineM3
#defineN4
main()
{intmax,i,j,r,c;
inta[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i for(j=0;j if(a[i][j]>max) {max=a[i][j]; r=i; c=j; } printf("max=%d,row=%d,colum=%d\n",max,r,c); } 求一个3×3矩阵主对角线元素之和。 #include voidmain() { inta[3][3]={1,2,3,4,5,6,7,8,9},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum+=a[i][j]; printf("%d",sum); } /*建立一个通讯录结构体,其成员变量主要有: 序号,姓名,电话。 根据建好的结构体设计有3个人员的通讯录,对其赋值,并将3人的通讯录按行输出。 */ #include"stdio.h" structmember { charnum[5]; charname[10]; inttel; }; voidmain() { inti; structmembermem[3]={{"001","zhangsan",139},{"002","lisi",139},{"003","wangwu",139}}; printf("Number Nametel\n"); for(i=0;i<3;i++) printf("%5s%10s%5d\n",mem[i].num,mem[i].name,mem[i].tel); } /*2、编写程序,从键盘读入一个字符串, 用字符数组保存,然后分别用strlen()、 sizeof()计算其长度,输出结果并分析。 */ #include #include voidmain() {chars[20]; gets(s); puts(s); printf("%d,%d\n",sizeof(s),strlen(s)); } 程序中头文件type1.h的内容是: #defineN5 #defineM1N*3 程序如下: #include"type1.h" #defineM2N*2 main() {inti; i=M1+M2;printf("%d\n",i);} 程序编译运行后的输出结果是(c) A)10B)20C)25D)30 1、所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[1,1000]之间所有同构数的个数和总和。 7,1114 #include voidmain(){ inti,a,n=0,sum=0; for(i=1;i<1000;i++) {a=i*i; if(i<10&&a%10==i) {n++; sum=sum+i; } elseif(i<100&&a%100==i) {n++; sum=sum+i; } elseif(a%1000==i) {n++; sum=sum+i; } }printf("%d,%d",n,sum); } 方法二: #include voidmain(){ inti,a,sum=0,n=0; for(i=1;i<1000;i++) {a=i*i; if(a%10==i||a%100==i||a%1000==i) { n++; sum=sum+i; }} printf("%d%d",sum,n);} 猴子第一天摘下若干桃子,当即吃了一半,还不过瘾又多吃了一个。 第二天早上又将剩下的桃子吃了一半,还是不过瘾,有多吃一个。 以后每天都吃前一天剩下的一半再加一个。 到第10天再吃剩下一个了。 求猴子第一天摘了多少桃子? 1534 #include voidmain() { inti,x=1; for(i=9;i>0;i--) x=(x+1)*2; printf("第一天共摘了%d只桃子\n",x); } 方法二: #include intpeach(intn) {intc; if(n==10)c=1; elsec=2*(peach(n+1)+1); returnc; } voidmain() {intsum=0; sum=peach (1); printf("%d",sum); }2、一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注: 1不是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。 例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。 试求[100,999]之内的所有逆向超级素数的个数。 39 #include #include intprime(intm) { inti,k,f=1; if(m==1) f=0; k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) f=0; returnf; } voidmain(){ intp,i,j,k,sum=0; for(p=100;p<=999;p++) {i=p/100; j=(p/10)%10; k=p%10; if(prime(p)&&prime(j*10+k)&&prime(k)&&k! =0&&j! =0) {printf("%d",p); sum++; } } printf("%d",sum); } /* 程序: 冒泡法排序函数的定义。 */ #include voidBubble(int*pa,intn);//冒泡法排序函数声明 intmain(){ inta[10],n,i; do { printf("Inputn(1<=n<=10): \n"); scanf("%d",&n); }while(n<1||n>10); printf("Input%delements: \n",n); for(i=0;i scanf("%d",&a[i]); printf("Theoriginalarrayis: \n"); for(i=0;i printf("%5d",a[i]); printf("\n"); Bubble(a,n); //冒泡排序函数调用 printf("Thesortedarrayis: \n"); for(i=0;i printf("%5d",a[i]); printf("\n"); return0; } voidBubble(int*pa,intn) { {inti,j,t; for(i=0;i for(j=n-1;j>i;j--) if(pa[j] {t=pa[j-1]; pa[j-1]=pa[j]; pa[j]=t;} } }德国数学家哥德巴赫曾猜测: 任何大于6的偶数都可以分解成两个素数的和。 但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。 试求6744可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对) 144 #include #include intprime(intm) { inti,k,f=1; if(m==1) f=0; k=(int)sqrt(m); for(i=2;i<=k;i++) if(m%i==0) f=0; returnf; } voidmain() { inta,b,n=0; for(a=1;a<6744/2;a=a+2) if(prime(a)) {b=6744-a; if(prime(b)) n++;} printf("%d\n",n); } /* 程序6.6求最大公约数函数的定义与调用。 第4章的程序4.9是求最大公约数程序的主函数形式, 现在将其求最大公约数部分独立定义为函数gcd,并在主函数中调用 */ #include intgcd(intdividend,intdivider);//求最大公约数函数声明 intmain() { intm,n; do { printf("Inputm,n: \n"); scanf("%d%d",&m,&n); }while(m<=0||n<=0); printf("hcd: %d\n",gcd(m,n));//求最大公约数函数调用 return0; } intgcd(intdividend,intdivider)//求最大公约数函数定义 { intremainder;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 详解 110