【问题描述】拆分实数的整数和小数部分:要求自定义一个函数void splitfloat(float x,int *intpart,flaot *fracpart)。其中x是要被拆分的实数,intpart和fracpart分别是将实数拆分出来的整数和小数部分。通过定义的主函数,编写对应的splitflaot函数内容。 【样例输入】
12.4567
【样例输出】
The intpart is 12
The fracpart is 0.456700
#include<stdio.h>
#include<stdlib.h>
void splitFloat(float x,int *intpart,float *fracpart){
}
int main(){
float x,fp;
int ip;
scanf("%f",&x);
splitFloat(x,&ip,&fp);
printf("The intpart is %d\n",ip);
printf("The fracpart is %f\n",fp);
}
void splitFloat(float x,int *intpart,float *fracpart){
*intpart=abs(x);
*fracpart=x-abs(x);
}
【问题描述】定义函数void sort(int a[], int n),用选择法对数组a中的元素升序排序。主函数中输入n(n<=10)再输入n个数放入数组,调用函数排序后输出数组内容。 【样例输入】
6
1 5 -9 2 4 -6
【样例输出】
-9 -6 1 2 4 5
#include<stdio.h>
void sort(int a[], int n){
}
int main(){
int a[10],n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
void sort(int a[], int n){
int t;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
【问题描述】输入一个正整数n,再输入n个整数存入数组中,再输入一个整数x,在数组中查找x,如果找到则输出相应的下标,否则输出“Not found”。要求定义并调用函数search(list,n,x),其功能是在数组中查找元素x,若找到则返回相应下标,否则返回-1; 【样例输入】
3
1 2 -6
2
【样例输出】
1
#include<stdio.h>
void printArray(int a[],int n){
}
void setArray(int a[],int n){
}
int search(int list[],int n,int x){
}
int main(){
int a[10],n,r,x;
scanf("%d",&n);
setArray(a,n);
scanf("%d",&x);
r=search(a,n,x);
if(r>=0)
printf("%d\n",r);
else
printf("Not found\n");
}
void printArray(int a[],int n){
for(int i=0;i<n;i++)
printf("%2d ",a[i]);
printf("\n");
}
void setArray(int a[],int n){
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
}
int search(int list[],int n,int x){
for(int i=0;i<n;i++) {
if(x==list[i])
return i;
}
return -1;
}
【问题描述】设计一个函数void f(char *p),对p指向的字符串进行逆序,要求函数不能定义任何数组、不能调用任何字符串处理函数。在主函数中输入字符串,调用f(),输出逆序后的字符串。 【样例输入】
abcd
【样例输出】
dcba
#include<stdio.h>
void f(char *p){
}
int main(){
char st[20];
scanf("%s",st);
f(st);
printf("%s",st);
}
void f(char *p){
char ch;
int i,k=0;
for(i=0;*(p+i)!='\0';i++)
k++;
for(i=0;i<k/2;i++){
ch=*(p+i);
*(p+i)=*(p+k-i-1);
*(p+k-i-1)=ch;
}
}
【问题描述】输入一个字符串t和正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s。要求使用字符指针定义并调用函数strmcpy(s,t,m),其功能是将字符串t中的第m个字符开始的全部字符,复制到串s中。 【样例输入】
happy new year
7
【样例输出】
new year
#include<stdio.h>
void strmcpy(char *st,char *tt,int m){
}
int main(){
char st[20],tt[20],ch;
int i=0,m;
scanf("%c",&ch);
while(ch!='\n'){
tt[i++]=ch;
scanf("%c",&ch);
}
tt[i]='\0';
scanf("%d",&m);
strmcpy(st,tt,m);
printf("%s\n",st);
}
void strmcpy(char *st,char *tt,int m){
for(int i=0;*(tt+m+i-1)!='\0';i++) {
*(st+i)=*(tt+m+i-1);
}
}
【问题描述】输入5个字符串,输出其中最长的字符串。通过输入函数scanf("%s",sx)的形式输入字符串。 【输入形式】
li wang zhang jin xian
【输出形式】
zhang
#include<stdio.h>
#include<string.h>
int main()
{
char string[20],strr[20];
char *sx=string;
int max=0;
for(int i=0;i<5;i++) {
scanf("%s",sx);
if(strlen(sx)>max){
strcpy(strr,sx);
max=strlen(sx);
}
}
printf("%s",strr);
}