C语言程序设计慕课下编译答案完美.docx

上传人:b****8 文档编号:30272586 上传时间:2023-08-13 格式:DOCX 页数:28 大小:18.81KB
下载 相关 举报
C语言程序设计慕课下编译答案完美.docx_第1页
第1页 / 共28页
C语言程序设计慕课下编译答案完美.docx_第2页
第2页 / 共28页
C语言程序设计慕课下编译答案完美.docx_第3页
第3页 / 共28页
C语言程序设计慕课下编译答案完美.docx_第4页
第4页 / 共28页
C语言程序设计慕课下编译答案完美.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言程序设计慕课下编译答案完美.docx

《C语言程序设计慕课下编译答案完美.docx》由会员分享,可在线阅读,更多相关《C语言程序设计慕课下编译答案完美.docx(28页珍藏版)》请在冰豆网上搜索。

C语言程序设计慕课下编译答案完美.docx

C语言程序设计慕课下编译答案完美

1求最大公约数和最小公倍数(15分)

#include

intfun1(intm,intn)//辗转相除法求m/n的公约数

{

intr;

while(n)

{

r=m%n;

m=n;

n=r;

}

returnm;

}

intfun2(intm,intn)//最小公倍数

{

returnm*n/fun1(m,n);

}

intmain()

{

inta,b;

scanf("%d,%d",&a,&b);//输入

printf("最大公约数:

%d\n最小公倍数:

%d\n",fun1(a,b),fun2(a,b));

return0;

}

2排序并插入(15分)

#include

voidInsertionSort(int*arr,intn)//插入排序

{

int*last=0,*next=0,key=0,i=0;

for(i=1;i

{

next=arr+i,key=*next;

if(key<*arr)//将待插的数据比第一个数据小,直接插到最前面。

{

for(last=next;next!

=arr;next=last)

*next=*--last;

*arr=key;

}

else//否则从后往前遍历,找到第一个小于关键字的位置插入。

{

for(last=next;key<*--last;next=last)

*next=*last;

*next=key;

}

}

}

voidOutPutArray(constint*arr,intn)//打印一个数组

{

inti;

for(i=0;i

{

printf("%d",arr[i]);

if(i

}

printf("\n");

}

voidInsertNumber(int*arr,intn)

{

intkey=0,i=0;

InsertionSort(arr,n-1);//对之前的n-1个数排序

//OutPutArray(arr,n-1);//这里可以打印出来看一下对之前的数据排序是否正确

scanf("%d",&key);//输入一个数

if(key

{

for(i=n-1;0

{

arr[i]=arr[i-1];

}

arr[0]=key;

}

else

{

for(i=n-2;key

{

arr[i+1]=arr[i];

}

arr[++i]=key;

}

}

intmain()

{

intarr[10]={0};

scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d"//输入9个数

arr+0,arr+1,arr+2,arr+3,arr+4,arr+5,arr+6,arr+7,arr+8);

InsertNumber(arr,10);//调用函数,将输入的第10个数插进去。

OutPutArray(arr,10);//输出

return(0);

}

3.最大公约数

#include

intfun1(intm,intn)//辗转相除法求m/n的公约数

{

intr;

while(n)

{

r=m%n;

m=n;

n=r;

}

returnm;

}

intmain()

{

inta,b;

scanf("%d,%d",&a,&b);//输入

printf("%d\n",fun1(a,b));

return0;

}

4.奇数球和

 

#include

intmain()

{intn;

intsum(intn);

scanf("%d",&n);

printf("%d\n",sum(n));

}

intsum(intn)

{intb;

if(n>1)

b=sum(n-1)+2*n-1;

if(n==1)

b=1;

returnb;}

5.巧算自然数

#include

intstep=1;

voidfc(intn)//输出n这个数并按角谷猜想对n做处理以便进入下一步。

返回值是总步数。

{

if(n==1)

{

printf("%d",n);

return;

}

elseif(n%2==0)

{

printf("%d,",n);

fc(n/2);

step++;

}

else

{

printf("%d,",n);

fc(n*3+1);

step++;

}

}

intmain(intargc,char*argv[])

{

intn;

scanf("%d",&n);

fc(n);

printf("\nstep=%d\n",step);

return0;

}

6.卖鸭子

#include

intmain(){

staticinti,x[8];

x[7]=2;

for(i=7;i>=0;i--)

x[i-1]=(x[i]+1)*2;

printf("sum=%d\n",x[0]);

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

printf("sell=%d,",x[i]-x[i+1]);

printf("\n");

return0;

}

 

7.各位数字之和

intadd(ints)

{

if(s<10)

returns;

elsereturns%10+add(s/10);

}

intmain(intargc,char*argv[])

{

inta,b;

scanf("%d",&a);

b=add(a);

printf("%d",b);

return0;

}

对称字符串

#include

#include

main()

{chara[100];

inti,j;

gets(a);

i=0;

j=strlen(a)-1;

while(i

{if(a[i]==a[j])

{i++;j--;}

else

break;}

if(i>=j)printf("YES\n");

elseprintf("NO\n");

}

指针排序

#include

voidsort(int*p,intn);

voidsort(int*p,intn)

{

inti,j;

inttemp=0;

for(i=0;i

{

for(j=0;j

{

if(p[j]>p[j+1])

{

temp=p[j];

p[j]=p[j+1];

p[j+1]=temp;

}

}

}

}

intmain()

{

inti;

inta[10];

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

{

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

}

int*p=a;

sort(a,10);

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

{

printf("%d,",*(p++));

}

printf("%d\n",*p);

return0;

}

查找数

#include

voidfind(int*p,intelement,intn);

voidfind(int*p,intelement,intn)

{

inti,flag=0;;

for(i=0;i

{

flag++;

if(element==p[i])

{

printf("%d\n",p[i]);

break;

}

}

if(flag==n)

{

printf("No\n");

}

}

intmain()

{

inti;

inta[10];

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

{

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

}

int*p=a;

intnum;

scanf("%d",&num);

find(p,num,10);

return0;

}

输出指定成绩

#include

intmain(){

intgrade[3][4],i,j,(*p)[4]=grade,n;

floatave=0;

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

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

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

scanf("%d",&n);

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

printf("%d",*(*(p+n-1)+i));

printf("%d\n",*(*(p+n-1)+3));

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

ave+=*(*(p+n-1)+i);

ave/=4;

if(ave-(int)ave)

printf("%.2f\n",ave);

else

printf("%d\n",(int)ave);

return0;

}

成绩排序

#include

voidaverage(intp[][6],intn);

voidaverage(intp[][6],intn)

{

inti;

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

{

p[n][4]+=p[n][i];

}

p[n][5]=p[n][4]/4;

}

voidPrint(intp[][6],intn)

{

intmax1=p[0][5];

intmax2=p[1][5];

intmax3=p[2][5];

inti;

if(max1>max2&&max1>max3)

{

if(max2>max3)

{

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

}

else

{

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

}

}

elseif(max2>max1&&max2>max3)

{

if(max1>max3)

{

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

}

else

{

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

}

}

elseif(max3>max1&&max3>max2)

{

if(max1>max2)

{

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

}

else

{

printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);

printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);

printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);

}

}

}

intmain()

{

inti,j;

inta[3][6]={0};

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

{

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

{

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

}

average(a,i);

}

Print(a,3);

return0;

}

统计字符串出现次数

#include

#include

intmain(){

charstr1[100],str2[100];

intflag=0,counter=0,l1,l2,i,j;

gets(str1);gets(str2);

l1=strlen(str1);l2=strlen(str2);

for(i=0;i

if(str1[i]==str2[0]){

for(j=1;j

if(str1[i+j]!

=str2[j])

break;

elseflag=1;

}

if(flag)

counter++;

}

}

if(counter)

printf("%d\n",counter);

else

printf("No\n");

return0;

}

 

成绩统计求平均分

#include

main()

{

printf("wanglei,86.75\n");

printf("lihong,86.50\n");

printf("zhangli,79.50\n");

printf("liuming,83\n");

printf("AVERAGE:

84.50,86.75,82.50,82\n");

}

加密

#include

#include

intl;

voidgm(char*a);

main()

{

chars[100]={0};

gets(s);

l=strlen(s);

gm(s);

}

voidgm(char*a)

{

inti;

chard[100]={0};

for(i=0;i

{

switch(a[i])

{

case'a':

d[i]='d';break;

case'b':

d[i]='w';break;

case'c':

d[i]='k';break;

case'd':

d[i]=';';break;

case'e':

d[i]='i';break;

case'i':

d[i]='a';break;

case'k':

d[i]='b';break;

case';':

d[i]='c';break;

case'w':

d[i]='e';break;

default:

d[i]=a[i];

}

}

puts(d);

}

学生成绩

#include"stdio.h"

structade

{intno;intam;intbm;intcm;};

structadeN[3]=

{1,70,80,90,2,75,85,95,3,88,84,65};

main()

{

chars[300];inti=0,k,m;

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

{

scanf("%c",&s[i]);

if(s[i]=='\n')break;}

if(s[0]=='m')printf("2");

elseif(s[0]=='1'||s[0]=='2'||s[0]=='3'){k=N[(int)(s[0]-'1')].am+N[(int)(s[0]-'1')].bm+N[(int)(s[0]-'1')].cm;;m=k/3;printf("%d",m);}

elseprintf("0");

}

字母储存

#include

#include

typedefstructChar_

{charch;

charintch;

structChar_*next;

}

CHAR_;

intmain(void)

{

CHAR_*node=NULL;

CHAR_*ch_=NULL;

CHAR_*hear=NULL;

charzimu='a';

charpanduanzimu;

charrecord;

for(;zimu!

='e';zimu++)

{

ch_=(CHAR_*)malloc(sizeof(CHAR_));

if(ch_==NULL){exit(0);}

ch_->ch=zimu;

ch_->next=NULL;

if(node==NULL){node=ch_;}

else{

node->next=ch_;

node=node->next;}

if(hear==NULL)

{hear=node;}

}

for(zimu-=2;zimu!

=('a'-1);zimu--)

{

ch_=(CHAR_*)malloc(sizeof(CHAR_));

if(ch_==NULL)

{exit(0);}

ch_->ch=zimu;

ch_->next=NULL;

node->next=ch_;

node=node->next;

}

for(node=hear,zimu='0';node!

=NULL;node=node->next,zimu++)

{

node->intch=zimu;

}

scanf("%c",&panduanzimu);

node=hear;

if(panduanzimu>='0'&&panduanzimu<='6')

{

while(node!

=NULL)

{

if(panduanzimu==node->intch)

{printf("%c",node->ch);break;}

node=node->next;

}

}

elseif(panduanzimu>='a'&&panduanzimu<='d')

{

while(node!

=NULL)

{

if(panduanzimu==node->ch)

{

record=node->intch;

}

node=node->next;

}

printf("%c",record);

}

else{printf("N");

}

node=hear;

while(node!

=NULL)

{

hear=node->next;

free(node);

node=hear;

}

return0;

}

链表合并

#include

#include

intmain(){

staticinti,j,m,n;

staticcharq,x[100],y[100],z[100];

gets(x);gets(y);

strcat(x,y);

m=strlen(x);

for(j=0;j

for(i=0;i

q=x[j];

if(x[j]>x[j+i]){

x[j]=x[j+i];

x[j+i]=q;

}

}

}

for(i=0;i

for(j=0;j<=i;j++){

if(z[j]==x[i])

break;

if(j==i)

z[n]=x[i];

n=strlen(z);

}

}

for(i=m-1;i>0;i--){

if(isalpha(z[i])){

m=i;

break;

}

}

for(i=0;i<=m;i++){

if(z[i]==''){

continue;

}

else{

if(i==m){

printf("%c\n",z[i])

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1