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);
}