作者:总是生活在记忆中_873 | 来源:互联网 | 2024-10-19 11:05
#includevoidsplitfloat(floatx,int*intpart,float*fracpart);intmain(void){intintpa
*拆分实数的整数与小数部分要求自定义一个函数void splitfloat(float x, int *inpart,flot*fracpart).其中x是被拆分的实数,*input和*facpart分别是将实数x拆分出来的整数部分与小数部分。编写主函数,并在其中调用函数splitfloat().试编写相应程序。
#include
void splitfloat(float x,int *intpart,float *fracpart);
int main(void)
{
int intpart;
float x,fracpart;
printf("Enter x:\n");
scanf("%f",&x);
splitfloat(x, &intpart, &fracpart);
printf("%d\n",intpart);
printf("%f\n",fracpart);
return 0;
}
void splitfloat(float x,int *intpart,float *fracpart)
{
*intpart=(int)x;
*fracpart=x-(*intpart);
}
循环右移:有n个整数,是前面各数顺序向后移m个位置,移出的数再从开头移入。编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个数。试编写相应程序。
#include
void move(int*x,int n,int m);
int main(void)
{
int i,m,n;
int a[20];
printf("输入n个数字\n");
scanf("%d",&n);
printf("请输入移动的长度: ");
scanf("%d",&m);
for(i=0;i scanf("%d",&a[i]);
move(a,n,m);
printf("输出移动后的数:");
for(i=0;i printf("%2d",a[i]);
printf("\n");
return 0;
}
void move(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.删除字符:输入一个字符串,再输入一个字符串ch,将字符串所有的ch字符删除后输出该字符串。要求定义和调用函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。试编写相应程序。
#include
void delchar(char *s,char c);
int main(void)
{
char c;
char s[80];
gets(s);
scanf("%c",&c);
delchar(s,c);
puts(s);
return 0;
}
void delchar(char *s,char c)
{ int i,j; i=j=0;
while(s[i]!=‘\0‘)
{ if(s[i]!=c)
{ s[j]=s[i]
j++; }
i++; }
s[j]=‘\0‘; }
7.字符串排序:输入5个字符串,按由小到大的顺序输出。试编写相应程序。
#include
#include
int main(void)
{
int i,j;
char a[5][20], t[20];
printf ("请输入5个字符串:\n");
for (i = 0; i <5; i++)
scanf("%s",a[i]);
//控制循环次数
for (i = 1; i <5; i++)
{for(j=0;j<5-i;j++)
if(strcmp(a[j],a[j+1])>0)
{strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
}
printf("排序后:\n");
for (i = 0; i <5; i++)
printf("%s\t",a[i]);
printf("\n");
return 0;
}