栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言练习-day29

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言练习-day29

题目:使用函数输出一个整数的逆序数。本题要求实现一个求整数的逆序数的简单函数。

输入:需要逆序的数n,类型为int。

输出:输出n逆序的值。

优化目标:无。

思想:其中函数reverse须返回用户传入的整型number的逆序数。定义一个新的数sum(存储逆序数),每次取number(n)的个位传到sum(自身10倍后)的个位,然后将number除10,直到number等于0。

#include 

int reverse( int number );
    
int main()
{
    int n;

    scanf("%d", &n);
    printf("%dn", reverse(n));

    return 0;
}

int reverse( int number ){
	if(number == 0){
		return 0;
	}
	int flag = 1,x,sum = 0;
	if(number<0){
		flag = -1;
		number = -number;
	}
	while(number){
		x = number%10;
		sum = sum*10+x;
		number/=10;
	}
	sum*=flag;
	
	return sum;
	
}

输入:-12340

输出:-4321

题目:计算两数的和与差。本题要求实现一个计算输入的两数的和与差的简单函数。

输入:需要计算的两个数a, b,类型都为int。

输出:输出a和b的和与差。

优化目标:无。

思想:其中函数中的op1和op2是输入的两个实数,*psum和*pdiff是计算得出的和与差。直接给*psum赋值两个数的和,*pdiff赋值两个数的差。

#include 

void sum_diff( float op1, float op2, float *psum, float *pdiff );

int main()
{
    float a, b, sum, diff;

    scanf("%f %f", &a, &b);
    sum_diff(a, b, &sum, &diff);
    printf("The sum is %.2fnThe diff is %.2fn", sum, diff);
    
    return 0; 
}

void sum_diff( float op1, float op2, float *psum, float *pdiff ){
	*psum = op1+op2;
	*pdiff = op1-op2;
}

输入:7 5

输出:

The sum is 12.00

The diff is 2.00

题目:移动字母。本题要求编写函数,将输入字符串的前3个字符移到最后。

输入:一个一维字符串,类型都为char。

输出:字符串左移3个字符后,输出移动后的字符串。

优化目标:无。

思想:其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。利用c[3]存储前三个元素,然后数组元素依次往前移动3位。再把c数组内元素赋在s的后面,最后一位赋‘’。

#include 
#include 

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] );

int main()
{
    char s[MAXS];

    GetString(s);
    Shift(s);
    printf("%sn", s);
    
    return 0; 
}

void GetString( char s[] ){
	gets(s);
}


void Shift( char s[] ){
	char c[3];
	int i,j = 0;
	for(i=0;i<=2;i++){
		c[i] = s[i];
	}
	while(s[i]!=''){
		s[j] = s[i];
		j++;i++;
	}
	for(i=0;i<=2;i++,j++){
		s[j] = c[i];
	}
	s[j] = '';
}

输入:12346515xsxsj

输出:46515xsxsj123

题目:拆分实数的整数与小数部分。本题要求实现一个拆分实数的整数与小数部分的简单函数。

输入:一个需要拆分的数,类型都为float。

输出:输出输入的数的整数部分和小数部分。

优化目标:无。

思想:其中x是被拆分的实数(0≤x<10000),*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分。直接给*intpart赋值输入值的整数部分(除1),给*fracpart赋值x减*intpart。

#include 

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

int main()
{
    float x, fracpart;
    int intpart;
    
    scanf("%f", &x);
    splitfloat(x, &intpart, &fracpart);
    printf("The integer part is %dn", intpart);
    printf("The fractional part is %gn", fracpart);
    
    return 0;
}
void splitfloat( float x, int *intpart, float *fracpart ){
	*intpart = x/1;
	*fracpart = x-*intpart;
	
}

输入:2.718

输出:

The integer part is 2

The fractional part is 0.718

今日总结:虽然已经复试完了,多练吧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784121.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号