综合运用种基本结构进行程序设计C语言程序实验报告

来源:工作范文网 时间:2020-11-09 09:32:40

安 徽 工 程 大 学

高级语言程序设计 实 验 报 告

班级 姓名 同组者 / 成绩

日期 .10.31 指导老师

试验名称 综合利用3种基础结构进行程序设计

试验目标

熟练利用“数据类型和表示式 ”相关内容,选择适宜数据结构定义问题需要变量。

熟练使用scanf函数和printf函数,进行数据输入和输出。

深入掌握次序、选择、循环结构程序设计方法和技巧。

综合利用3种基础结构进行程序设计。

试验内容

百马百担。100匹马,共驮100担,大马驮3担,中马驮2担,2个小马驮1担,问大、中、小马各多少?

输入一行字符,分别统计其中英文字母、空格、数字和其它字符个数。

打印输出“水仙花数”。“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

讲一个正整数分解成每个质因数乘积。如输入90,打印90=2*3*3*5.

利用循环语句编写程序实现以下功效:对一个正整数,将各位数字反序后形成一个新整数输出。

一个素数加上1000以后是37倍数,求满足这个条件最小素数。

找1000以内全部“完数”。一个数假如恰好等于它因子之和,这个数就称为“完数”,如6就是一个完数,因为6=1+2+3。

从键盘输入一串数字字符(该字符串至多包含一个点号'.'),将其转换成对应实数。说明:点号前有0~9位数字字符,点号后有0~6位数字字符,不过点号前后不能同时没有数字字符。比如输入“36.8”或“36.80”,则输出实数36.800000;输入“.8”、“0.8”或“0.800”,则输出实数0.800000;输入字符串“36”或“36.0”,则输出实数36.000000.

两个羽毛球队进行两两单打比赛(每名选手只能上场1次),每队3名选手。甲队为A、B、C三人,乙队为X、Y、Z三人,已知A不和X对抗,C不和X、Z对抗。

*思索题

已知

VINGT

CINQ

+ CINQ

TRENTE

试编写程序用尽可能少时间求解各个字母代表数字。

提醒:题目要求所用时间尽可能少,那么下面这种方法很显然是不可行:

for?(V=1;V<=9;V++)

for(I=0;I<=9;?I++)

for?(E=0;E<=9;?E++)

{

..

}

能够经过找出某个字母范围,降低循环次数来节省运算时间。

算法步骤图或试验步骤(可依据需要增删、修改)

算法步骤图

#include <stdio.h>

void main()

{

int i,j,k;

for(i=0;i<=33;i++)

for(j=0;j<=50;j++)

{

k=100-i-j;

if(3*i+2*j+k/2.0==100)

printf(“Da=%d,Zhong=%d,Xiao=%d\n”,i,j,k);

}

}

算法步骤图

#include <stdio.h>

void main()

{

char c;

int letter=0,space=0,digtal=0,other=0;

while((c=getchar())!=‘\n’)

{

if((c>=‘A’&&c<=‘Z’)||(c>=‘a’&&c<=‘z’))

letter++;

else if(c==‘ ‘)

space++;

else if(c>=‘0’&&c<=‘9’)

digtal++;

else

other++;

}

printf(“letter=%d,space=%d,digtal=%d,other=%d”,letter,space,digtal,other);

}

算法步骤图

#include <stdio.h>

void main()

{

int i,j,k;

for(i=1;i<=9;i++)

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

{

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf(“%d\n”,i*100+j*10+k);

}

}

算法步骤图

#include <stdio.h>

void main()

{

int n,i=2;

scanf(“%d”,&n);

printf(“%d=“,n);

while(n>1)

{

if(n%i==0)

{

printf(“%d*”,i);

n=n/i;

}

else i++;

}

printf(“\b “);

}

算法步骤图

#include <stdio.h>

void main()

{

long m,n,sum=0;

scanf(“%ld”,&m);

while(m>0)

{

n=m%10;

m=m/10;

sum=sum*10+n;

}

printf(“%ld”,sum);

}

算法步骤图

#include <stdio.h>

void main()

{

int n=1,i;

while(1)

{

n++;

for(i=2;i<=n/2;i++)

if(n%i==0) break;

if((i>n/2)&&(n+1000)%37==0)

{

printf(“%d”,n);

break;

}

}

}

算法步骤图

#include <stdio.h>

void main()

{

int i,j,sum,m;

for(i=2;i<1000;i++)

{

sum=0;

for(j=1;j<i;j++)

if(i%j==0) sum+=j;

if(sum==i)

{

printf("%d its factors are 1",i);

for(m=2;m<i;m++)

if(i%m==0) printf(",%d",m);

printf("\n");

}

}

}

算法步骤图

#include<stdio.h>

void main()

{

int s1=0,j,i=1;

float s=0,s2=0,x;

char ch=getchar();

while(ch!='.'&&ch!='\n')

{

s1=s1*10+ch-'0';

ch=getchar();

}

if(ch!='\n')

ch=getchar();

while(ch!='\n')

{

x=ch-'0';

ch=getchar();

for(j=1;j<=i;j++)

{

x=x*0.1;

}

s2=s2+x;

i++;

}

s=s1+s2;

printf("%.6f\n",s);

}

算法步骤图

#include<stdio.h>

void main()

{

char i,j,k;

for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

if(i!=j)

for(k='X';k<='Z';k++)

if(i!=k&&j!=k)

{

if(i!='X'&&k!='X'&&k!='Z')

printf("A-%c\nB-%c\nC-%c\n",i,j,k);

}

}

*思索题-算法步骤图

#include<stdio.h>

void main()

{

int C,E,G,N,Q,R,V,I,T=1;

int VINGT,CINQ,TRENTE,sum;

for(Q=0;Q<=9;Q++)

for(C=2;C<=9;C++)

if(C!=Q)

for(E=3;E<=9;E+=2)

if(E!=Q&&E!=C)

for(G=4;G<=9;G++)

if(G!=Q&&G!=C&&G!=E)

for(N=4;N<=9;N++)

if(N!=Q&&N!=C&&N!=E&&N!=G)

for(V=8;V<=9;V++)

if(V!=Q&&V!=C&&V!=E&&V!=G&&V!=N)

for(R=0;R<=1;R++)

if(R!=T)

for(I=4;I<=9;I+=5)

if(I!=Q&&I!=C&&I!=E&&I!=G&&I!=N&&I!=V)

{

VINGT=(((V*10+I)*10+N)*10+G)*10+T;

CINQ=((C*10+I)*10+N)*10+Q;

TRENTE=((((T*10+R)*10+E)*10+N)*10+T)*10+E;

sum=VINGT+2*(CINQ);

if(sum==TRENTE) printf("C=%d,E=%d,G=%d,N=%d,Q=%d,R=%d,V=%d,I=%d,T=%d\n",C,E,G,N,Q,R,V,I,T);

}

}

试验结果及分析

1.

2,30,68

5,25,70

8,20,72

11,15,74

14,10,76

17,5,78

20,0,80

如第三项算法步骤图所表示

153 370 371 407

如第三项算法步骤图所表示

如第三项算法步骤图所表示

73

6 28 496

如第三项算法步骤图所表示

A-Z B-X C-Y

*思索题:C=6 E=7 G=5 X=8 Q=3 R=0 V=9 I=4 T=1

试验体会、问题讨论

if括号后若加分号,若if成立则实施分号

格式while((c=getchar( ))!='\n')

老师签字: 批改日期:

说明:

1、对于每一个试验项目,试验汇报(含预习)通常应包含以下内容:

第一部分——预习后书面汇报。其关键内容应包含:*一、试验目标;*二、试验内容;三、算法步骤图或试验步骤。试验目标和试验内容参见试验教材或老师下发内容。

第二部分——试验结果书面汇报。其关键内容应包含: *四、试验结果及分析(含试验测试输入数据,试验运行结果截图,用简练语言总结试验,汇报是否达成试验目标);*五、试验体会、问题讨论(谈体会或感想、提出提议或意见、讨论和试验相关且自己感爱好问题、回复课后思索题)。

第三部分——附录:试验源程序。提前编写好程序,试验时调试并完善。

2、 试验汇报写在教务处下发试验汇报纸上,每次试验完成后课代表收齐统一交给老师。

试验源程序写在单独一个本子上,试验课时带到机房,供上机调试使用,试验老师抽查完成情况。