第十次作业

1.

本题要求实现一个拆分实数的整数与小数部分的简单函数。函数接口定义:void splitfloat( float x, int *intpart, float *fracpart );
其中x是被拆分的实数(0≤x<10000),*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分。
 

#include<stdio.h>

void splitfloat(float x,int*intpart,float*fracapart);

int main(void)

{

float x,fracpart;

int intpart;

printf("Input a number:");

scanf("%f",&x);

splitfloat(x,&intpart,&fracpart);

printf("整数部分是:%d",intpart);

printf("小数部分是:%f",fracpart);

 

return 0;

}

void splitfloat(float x,int*intpart,float*fracpart)

{

*intpart=(int)x;

*fracpart=x-*intpart;

}

 

3.

有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
 

#include<stdio.h>

void mov(int*x,int n,int m);

int main(void)

{

int i,m,n;

int a[80];

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

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

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

mov(a,n,m);

printf("After move:");

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

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

printf("\n");

}

void mov(int*x,int n,int m)

{

int i,j,k;

 

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

k=x[n-1];

for(j=n-1;j>0;j--)

x[j]=x[j-1];

x[0]=k;

}

}

6.删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用

#include<stdio.h>

void main()

{

char c;

char str[80];

void delchar(char*str,char c);

 

gets(str);

scanf("%c",&c);

getchar();

 

delchar(str,c);

 

printf("result:");

puts(str);

}

void delchar(char*str,char c)

{

int i,j;

i=j=0;

while(str[i]!='\0'){

if(str[i]!=c){

str[j]=str[i];

j++;

}

i++;

}

str[j]='\0';

}

7.

从键盘上输入5个字符串,按照字符串的长度将字符串按从小到大的顺序排序
 

#include<stdio.h>

#include<string.h>

int main(void)

{

int i,j,index;

char sx[5][80],stemp[80];

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

scanf("%s",sx[i]);

for(i=1;i<4;i++){

index=i;

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

if(strcmp(sx[j],sx[index])<0)

index=j;

strcpy(stemp,sx[i]);

strcpy(sx[i],sx[index]);

strcpy(sx[index],stemp);

}

printf("after sorted:\n");

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

puts(sx[i]);

return 0;

}

 

 

心得体会:

1.需要熟悉字符串的定义及使用

2.指针定义类型

3.string的应用

4.循环后移不会,应该再多上机

posted @ 2019-06-19 20:25  黄月香  阅读(395)  评论(0编辑  收藏  举报