1. c语言先排序后折半查找程序的实验报告
1实验目的:熟练掌握一维亮销数组,二维数组的定首巧义,初始化和输入输出方法;熟练掌握与数组有关的常用算法(如查找,排序等)。
2实验内容:设定一个整形数组存放20个元素,用直接赋值的方法在程序中初始化该数组。先对这些无序的数据进行排序,然后采用折半查找,把要寻找的数的位置输出出来。
3算法描述流程图
源程序:#include<stdio.h>
void main()
{int k,s,b,i,j,m,n,a[20]={12,9,16,21,6,11,19,4,8,20,15,2,5,18,14,7,3,10,13,17};
for(s=0;s<20;s++)
{
for(i=s+1;i<20;i++)
{
if(a[s]>a[i])
{
j=a[s];
a[s]=a[i];
a[i]=j;
}
}
}
scanf("%d",&b);
m=0;
n=19;
while(m<=n)
{
k=(m+n)/2;
if(b==a[k])
{
printf("FOUND\n");
printf("%d\n",k+1);
break;
}
else
{
if(b<a[k])
n=k-1;
else
m=k+1;
}
if(m>n)
printf("NO FOUND");
}
}
5测试数据:3,5, 20,30
6运行结果:FOUND 2;FOUND 4;FOUND 19 ;NO FOUND
7出现问题及解决方法:编译时出错,修改源程序,直到没有错误为止
8实验心得:通过折半查找,可以实现对数组数据的处敬芹游理,并且增加了查找速度
2. 实验编程题 : 从键盘输入8个同学的C语言成绩,并用数组保持,以每行4个成绩输出C语言成绩(保留2位有效小数
#include<stdio.h>
intmain(){
floata[8];
inti;
printf("请输入8位同学的C语言成绩 ");
for(i=0;i<8;i++){
scanf("%f",&a[i]);
}
printf("以下是8位同学的成绩 ");
for(i=0;i<8;i++){
printf("%7.2f",a[i]);
if(i%4==3)printf(" ");
}
}
3. 编写一个c语言:计算8! 谢谢
void main()
{int a = 1,i;
for (i=1;i<袭判=8;i++)
a=a*i;
printf("源禅迹8!=%d"雹并,a);}
4. C语言编程(6)——(8)
voidsix()
{
chara[100];
scanf("%s",a);
intlength=strlen(a);
for(inti=length-1;i>=0;i--)
{
printf("%c",a[i]);
}
}
voidseven()
{
int衡拦a[5][5];
for(inti=0;i<4;i++)
{
for(intj=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}
intt=0;
for(inti=0;i<4;i++)
{
for(intj=0;j<i;j++)
{
咐高胡if(a[i][j]>a[j][i])
{
t=a[i][j];
a[i][j]=a[j][i];
念纳a[j][i]=t;
}
}
}
for(inti=0;i<4;i++)
{
for(intj=0;j<4;j++)
{
if(j>i)
printf("%d",a[i][j]);
}
printf(" ");
}
}
voideight()
{
chara[100];
charb[100];
intm,n;
intlength=strlen(a);
scanf("%s",a);
scanf("%d%d",&m,&n);
intj=0;
for(inti=m;i<=n;i++)
{
b[j++]=a[i];
}
printf("%s",b);
}
5. 八皇后问题求解的C语言程序的实现
这是个前不久,我为别人写的一个代码;
八皇后问题共有92种解;
以下代码是解决:对于固定一个皇后位置,输出所有可能情况.
如果这不适合你的答案你可以,稍微改改的哦~~
代码如下:
#include "stdio.h"
bool board[8][8]={0};
int num=0; //满足条件的个数
int inix,iniy; //输入一个皇后的初始位置
void output() //输出
{
int i, j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(!board[i][j]) printf("■ ");
else printf("◆ ");
}
printf("\n");
}
num++;
printf("\n\n");
return ;
}
bool check(int x,int y) //判断是否能放
{
int i, j ;
for(i=0; i<8 ; i++)
{
if(board[i][y]==1) return false;
}
for(i=0;i<8;i++)
{
if(board[x][i]==1) return false;
}
i=x; j=y;
while(i>0 && j>0 ) { i--; j--; }
for(;i<8 && j<8 ; i++,j++)
if(board[i][j]==1) return false;
i=x; j=y;
while(i>0 && j<7 ) {i--;j++;}
for(;i<8 && j>=0 ; i++ ,j--)
if(board[i][j]==1) return false ;
return true ;
}
void search(int x,int num) // 搜索函数
{
int i;
if(num>=8) { output(); return ;}
if(x==inix-1) search(inix,num+1);
else
{
for(i=0;i<8;i++)
{
if(check(x,i))
{
board[x][i]=1;
search(x+1,num+1);
board[x][i]=0;
}
}
}
return ;
}
int main()
{
scanf("%d %d",&inix,&iniy);
board[inix-1][iniy-1] = 1 ;
search(0,0);
printf("%d\n",num);
return 0;
}
例如:
输入 : 1 1
输出 :
◆ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ◆ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ◆
■ ■ ■ ■ ■ ◆ ■ ■
■ ■ ◆ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ◆ ■
■ ◆ ■ ■ ■ ■ ■ ■
■ ■ ■ ◆ ■ ■ ■ ■
◆ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ◆ ■ ■
■ ■ ■ ■ ■ ■ ■ ◆
■ ■ ◆ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ◆ ■
■ ■ ■ ◆ ■ ■ ■ ■
■ ◆ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ◆ ■ ■ ■
◆ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ◆ ■
■ ■ ■ ◆ ■ ■ ■ ■
■ ■ ■ ■ ■ ◆ ■ ■
■ ■ ■ ■ ■ ■ ■ ◆
■ ◆ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ◆ ■ ■ ■
■ ■ ◆ ■ ■ ■ ■ ■
◆ ■ ■ ■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ◆ ■
■ ■ ■ ■ ◆ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ◆
■ ◆ ■ ■ ■ ■ ■ ■
■ ■ ■ ◆ ■ ■ ■ ■
■ ■ ■ ■ ■ ◆ ■ ■
■ ■ ◆ ■ ■ ■ ■ ■
4
6. C语言程序设计实验报告完整版
以前做过,时间太长了忘记了,你给的分太少了。人家像这样的都是100多200分的
7. c语言程序设计实验报告内容
1、实验名称:计算出1000以内10个最大素数之和。
2、实验目的:熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
3、实验内容:计算并输出1000以内最大的10个素数以及它们的和。
4、要求:在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。
5、算法描述流程:Main函数:判断素数:
6、测试数据:分别输入1000、100、10测试。
7、运行结果:出现问题及解决方法:当素数个数小于10时的处理不够完善,考虑不够周全。学习耐心与细心不足,如scanf(“%d”,&n);中的“&”经常忘记。
8、编程思想不够发散,例如如何判断素数,只能想出2种方式(其中1种为参考教科书上内容);在今后学习桐袜中应更多的动脑,综合运用所学。
9、基本功不够,如清屏clrscr()等函数用的不好,有时同样的问题多次犯,给实验课老师带来很大的麻烦。这说乱轮态明我的知识不够广,有很多有用但不做考试要求的书中内哗源容没有学好,认识程度不够深刻。就算以后C语言这门课程结束后,也应多看相关东西,多上机练习,才能真正从本质上提高自己。
10、物理实验报告 ·化学实验报告 ·生物实验报告 ·实验报告格式 ·实验报告模板
11、知识不够广泛,如VC++6.0等程序,自己试了好一阵也不会用;说明我电脑水平还是不够,自学能力不够。已会的东西掌握的还是不够好。
12、实验心得:通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。其间开心过、郁闷过、无奈过、彷徨过……随着实验的胜利成功与实验报告的胜利完成,有点微微的自豪感使人难忘。感谢高克宁老师的高标准、严要求,感谢实验课上小老师们的耐心指点,也感谢我在实验中经历过的点点滴滴……伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对C语言,我会更加努力。
8. c语言编写一个程序,输入8个浮点数,输出其中的最小值
#include <stdio.h>
int main()
{
double f,min;
int i;
for(scanf("%lf",&min),i=1;i<8;++i)
竖拦芹 {
scanf("%lf",&f);
if(f<min)
余毕 衡租 min=f;
}
printf("%lf ",min);
return 0;
}
9. C语言编程8rs
#include <stdio.h>
#include <string.h>
void f(char str[],char b)
{
int len=strlen(str);
char *c=&str[0];
int i=0,index;
while(len--)
{
if(*c==b)
{
index=i; break;
}
i++;
c++;
}
if(len==-1)
{
printf("Not be found!");
}
else
{
printf("%d\n"凳做,i);
}
}
main()
{
char a='b';
char *ss="伍颤a12cbh"枣橘衡;
f(ss,a);
}
10. C语言编程8选6全组合问题
#include <stdio.h>旅李
void main()
{
int i,j,k,l,m,n;
for(i=1;i<=3;i++)
for(j=i+1;j<=4;j++)
for(k=j+1;k<=5;k++)
for(l=k+1;l<=6;l++)
for(m=l+1;m<=7;m++)
for(n=m+1;n<=8;n++)
printf("银镇族锋弊0%d-0%d-0%d-0%d-0%d-0%d\n",i,j,k,l,m,n);
}