第十次作业

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 *fracpart);
int main(void)
{ float realnumber;  
 int integerpart;
 float fractionpart;  
 printf("请输入一个实数:"); 
 scanf("%f",&realnumber);
 printf("你输入的实数是:%f\n", realnumber); 
 splitfloat(realnumber, &integerpart, &fractionpart);
 printf("整数部分是:%d\n", integerpart);
 printf("小数部分是:%f\n", fractionpart);
 
 return 0;
 }
 void splitfloat(float x, int *intpart, float *fracpart)
 {
 *intpart = (int)x;
 *fracpart = x - *intpart;
 }

有n个整数,使前面各数顺序向后移m个位置,移出的数再从开头移入,在主函数中输入n个整数并输出调整后的n个数。

#include<stdio.h>
int move(int *a,int n,int m)
{
  int t[100];
  int i;
for(i=0;i<n;i++)
{
  t[i]=a[i];
}
for(i=0;i<m;i++)
{
  a[i]=t[n-m+i];
}
for(i=m;i<n;i++)
{
  a[i]=t[i-m];
 } 
}
int main()
{
  int a[20];
  int n,m;
  int i;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=0;i<n;i++)
{
  scanf("%d",&a[i]);
}
move(a,n,m);
for(i=0;i<n-1;i++)
{
printf("%d",a[i]);
}
printf("%d\n",a[i]);
}
}#include<stdio.h>

删除字符串中的字符。输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用delchar(s,c),该函数将字符串s中出现的所有c字符删除。

 

#include<string.h>
int main()
{
    int i;
   char s[80],c;
   void delchar(char *s,char c);
 
   printf("Input a string: ");
   i=0;
   while((s[i]=getchar())!='\n'){
    i++;
   }
    s[i]='\0';
   printf("Input a character: ");
   c = getchar();
   delchar(s,c);
    printf("After deleted, the string is:");
    printf("%s\n",s);
  
    return 0;
}
 
void delchar(char *s,char c){
    int i = 0, j = 0;
   char tmp[80];
    while(s[i]!='\0'){
    if(s[i++] != c)
    tmp[j++]= s[i-1];
   }
    tmp[j] = 0;
    
    strcpy(s, tmp);
 
}

 

从键盘上输入5个字符串,按由小到大的顺序输出 。

 

#include<stdio.h>

#include<string.h>

int main()
{
char str[5][80];
char temp[80];
int i,j;
printf("Please input 5 strings:\n");
for (i=0;i<5;i++)
{
gets(str[i]);
}
for (i=0;i<5;i++)
{
for (j=i+1;j<5;j++)
{
if (strcmp(str[i],str[j])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
printf("The strings:\n");
for (i=0;i<5;i++)
{
puts(str[i]);
}
return 0;
}

 

posted @ 2019-06-19 22:10  马福良  阅读(183)  评论(0编辑  收藏  举报