精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

C語言程序設(shè)計(jì)教程

楊路明 郭浩志 編 / 北京郵電大學(xué)出版社

紅塵陌上 上傳

查看本書

第7章 數(shù)組

1:??(1)??D

?????(2)??A

?????(3)??D

?????(4)??B

?????(5)??D

?

2:??(1)?1?????5????4????4

?????????????????6????7????8

??????????????????????2????3??

???????????????????????????4

?

?????(2)?6333

?

3:???1a[8]=data;???k>=0????a[k]=temp????break????k<=8

??

??????(2)?"%s"????str[i]<='Z'????c[str[i]+26-'a']++?????i+'a'

?

4/*題目:求一組成績的平均分?jǐn)?shù)以及高于平均分的成績。*/

#include<stdio.h>

#define?max?100

void?main()

{

float?a[max],s=0,average=0;

int?i,n;

printf("Please?input?N:???");???/*輸入要處理元素的個(gè)數(shù)*/

????????scanf("%d",&n);

printf("\nPlease?input?%d?ge?shu:???",n);??/*輸入90,85,9277,8062*/

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

{

?????scanf("%f",&a[i]);

?????s+=a[i];?

}

average?=?s?/?n;

printf("\naverage?=?%.2f\n",average);??/*輸出81.00*/

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

?????if(a[i]>average)

???printf("%.2f??",a[i]);??/*輸出90.00?,85.00?92.00*/

}

5、/*題目:編寫程序,輸入一組整數(shù),將他們排序后由小到大輸出。*/

#include<stdio.h>

#define?max?100

void?main()

{

int?a[max],j,i,k=0,t=0,n=0;

printf("Please?input?N:???");???/*輸入要處理元素的個(gè)數(shù)*/

????????scanf("%d",&n);

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

?????scanf("%d",&a[i]);

for(i=0;i<n-1;i++)???/*比較n-1*/

{?k=i;

for(j=i+1;j<n;j++)???/*每遍比較n-(i+1)*/

???if(a[k]>a[j])

k=j;

????????????????if(k!=i)???/*元素排序前下標(biāo)與排序后下標(biāo)不符,則交換其值*/

{??t=a[i];

???a[i]=a[k];

???a[k]=t;

}

}

printf("\n\n");

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

???printf("%d??",a[i]);

}

6、/*題目:從鍵盤輸入一個(gè)4x4的整數(shù)矩陣,以主對(duì)角線(\)為對(duì)稱軸*/

/*將左下角元素中較大者替換右上角元素,并將右上角含對(duì)稱軸輸出。*/

#include<stdio.h>

#include<string.h>

void?main()

{

int?d[4][4]={{0,0,0,0}},i,j;

clrscr();

printf("\nPlease?input?16?num:???");

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

???for(j=0;j<4;j++)

??????scanf("%d",&d[i][j]);

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

???for(j=0;j<4;j++)

??????if(d[i][j]>d[j][i])??/*左下角元素大于右上角元素則交換*/

?d[j][i]=d[i][j];

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

{?printf("\n\n\n\n\n");/*為了保持每行的間隔與每列的相同*/

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

???if(j>=i)

??????printf("\t%d",d[i][j]);/*為了使位數(shù)不同的數(shù)輸出依然保持三角型*/

???else

??????printf("\t");

}

?

}

7、*題目:輸入一個(gè)3x4的二維數(shù)組,然后分別按行和按列輸出。*/

#include<stdio.h>

#include<string.h>

void?main()

{

int?d[3][4]={{0,0,0,0}},i,j;

printf("Please?input?12?num:???");

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

???for(j=0;j<4;j++)

??????scanf("%d",&d[i][j]);

printf("\n\nAn?hang:?");

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

???for(j=0;j<4;j++)

???printf("%d??",d[i][j]);

printf("\n\nAn???lie:?");

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

???for(j=0;j<3;j++)

???printf("%d??",d[j][i]);

}

8、/*題目:編寫程序,將兩個(gè)字符串連接起來,不用strcat函數(shù)。*/

#include<stdio.h>

#include<string.h>

void?main()

{??char?s1[50],s2[50];

?int?i=0,j=0,t=0;

?printf("Input?one:??");

?gets(s1);

?while(s1[i]!='\0')???i++;???/*統(tǒng)計(jì)s1中字符個(gè)數(shù)*/

?printf("\n\nInput?second:???");

?gets(s2);??

?while(s2[j]!='\0')???j++;???/*統(tǒng)計(jì)s2中字符個(gè)數(shù)*/

?for(t=0;t<=j;t++)???/*s2中字符連接到s1后面*/

?{??s1[i]=s2[t];??i++;}

?printf("\n\none?+?second:??");

?puts(s1);

}

9、/*輸入一行字符串,統(tǒng)計(jì)字符對(duì)ab的個(gè)數(shù)。*/

#include<stdio.h>

#include<string.h>

#define?MAX?100

void?main()

{

char?str[MAX];

int?i=0,flage=0;

int?count=0;

printf("\nPlease?input?a?string:???");

gets(str);

while(str[i])

{?if(str[i]=='a')

?????flage=1;

else?if(str[i]=='b')

{

???if(flage==1)

???{?count++;flage=0;}

}

else?flage=0;

i++;

}

?????printf("the?double?char?\"ab\"?count?is?%d\n",count);

}

10

#include<stdio.h>??/*相對(duì)于第一種方法,這種方法能把同為最大的字符串全部打印出來。*/

#include<string.h>

int?paixu(int?a[],int?n)???/*構(gòu)造對(duì)長度為n的數(shù)組排序的函數(shù)*/

{

int?i,j,t,k,temp;

????????for(i=0;i<n-1;i++)

{?k=i;

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

???if(a[k]>a[j])

k=j;

????????????????if(k!=i)

{??t=a[i];

???a[i]=a[k];

???a[k]=t;

}

}

temp=a[n-1];

return?temp;???/*返回最大字符串的長度的值*/

}

void?main()

{

char?str1[50],str2[50],str3[50],str4[50],str5[50],str6[50];

char?str7[50],str8[50],str9[50],str10[50];

int?count[10]={0},temp[10]={0},i,j;

int?paixu(int?a[],int?n);

for(i=1;i<=10;i++)???/*輸入10個(gè)字符串*/

{

????printf("\nPlease?input?%d?string:???",i);

????if(i==1)

????{???gets(str1);while(str1[count[0]]){count[0]++;temp[0]++;?}}

????if(i==2)

????{???gets(str2);while(str2[count[1]]){count[1]++;temp[1]++;}}

????if(i==3)

????{???gets(str3);while(str3[count[2]]){count[2]++;temp[2]++;?}}

????if(i==4)

????{???gets(str4);while(str4[count[3]]){count[3]++;?temp[3]++;}}

????if(i==5)

????{???gets(str5);while(str5[count[4]]){count[4]++;?temp[4]++;}}

????if(i==6)

????{???gets(str6);while(str6[count[5]]){count[5]++;?temp[5]++;}}

????if(i==7)

????{???gets(str7);while(str7[count[6]]){count[6]++;?temp[6]++;}}

????if(i==8)

????{???gets(str8);while(str8[count[7]]){count[7]++;?temp[7]++;}}

????if(i==9)

????{???gets(str9);while(str9[count[8]]){count[8]++;?temp[8]++;}}

????if(i==10)

????{???gets(str10);while(str10[count[9]]){count[9]++;temp[9]++;}}

}

j=paixu(temp,10);??

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

{

???if(count[i-1]==j)

???{????????????????????????/*只要字符串長度與最大長度相等就打印出來*/

switch(i)

{?case?1:puts(str1);?printf("\n");?break;

case?2:puts(str2);?printf("\n");?break;

case?3:puts(str3);?printf("\n");?break;

case?4:puts(str4);?printf("\n");?break;

case?5:puts(str5);?printf("\n");?break;

case?6:puts(str6);?printf("\n");?break;

case?7:puts(str7);?printf("\n");?break;

case?8:puts(str8);?printf("\n");?break;

case?9:puts(str9);?printf("\n");?break;

case?10:puts(str10);?printf("\n");?break;

?}

???}

}

}

11、

/*給數(shù)組a輸入m個(gè)按升序排列的數(shù),給數(shù)組b輸入n個(gè)按降序排列的數(shù)*/

/*ab中的元素按降序排列存在數(shù)組c中。*/

#include<stdio.h>

void?main()

{

????int?a[100],b[100],c[100],i,m,n,j,k,temp=0,s;

????printf("\nm?=??");scanf("%d",&m);???????????/*確定M的個(gè)數(shù)*/

????printf("\nn?=??");scanf("%d",&n);????????????/*確定N的個(gè)數(shù)*/

????printf("\nPlease?input?m?ge?shu:?????");

????for(s=0;s<m;s++)

????????scanf("%d",&a[s]);

????printf("\nPlease?input?n?ge?shu:?????");

????for(s=0;s<n;s++)

????????scanf("%d",&b[s]);

????i=m-1;j=0;k=0;???????/*ij,分別標(biāo)記a[]b[]且都是從最大元素開始做標(biāo)記*/

????for(;;)

????{???if(i==0)???????????????/*a[]中只有一個(gè)數(shù)或者a[]處理到了最后一個(gè)元素*/

????????{???if(a[i]<=b[j])?????/*如果a[]的最后一個(gè)元素<=b[]中當(dāng)前元素*/??????????????

????????????{??c[k]=b[j];??k++;?j++;???}

????????????else

????????????{??c[k]=a[i];

???????????????k++;

???????????????for(;;)?????????/*b[]數(shù)組接到c[]后面*/

???????????????{????c[k]=b[j];

?????????????j++;

?????????????k++;

?????????????????if(j==n)??/*如果b[]處理完,結(jié)束。并做標(biāo)記temp=1*/

?????????????????????{???temp=1;break;??}

???????????????}

?????????}

????????}if(temp==1)break;??/*標(biāo)記temp=1,全部處理結(jié)束*/

????????if((a[i]<=b[j])&&(i!=0)&&(j!=n))??

????????{???c[k]=b[j];??j++;??k++;?????}

????????if((a[i]>b[j])&&(i!=0)&&(j!=n))

????????{???c[k]=a[i];??i--;??k++;?????}

????????if(j==n)???????????/*b[]處理到完*/

????????{???for(;;)????????/*b[]數(shù)組接到c[]后面*/

????????????{???if(i==0)???/*如果a[]處理完,結(jié)束。并做標(biāo)記temp=1*/

????????????????{??????c[k]=a[i];temp=1;break;??}??

????????????????c[k]=a[i];

????????????????i--;

?????????k++;

????}

????????}if(temp==1)?break;/*標(biāo)記temp=1,全部處理結(jié)束*/

????}

????for(s=0;s<m+n;s++)

????printf("%d???",c[s]);

????getch();

}



第8章 指針



查看更多