C语言练习题

一些记录。

1.4.1-3输入10个整数,倒序输出 (以空格分隔)
例如:
输入:345602111271
输出:1712112 06 54 3

#include<stdio.h>
int main()
{
    int a[10],i,j;
    for( i = 0; i < 10; i++ ){	
       scanf("%d", &a[i]);
    }     
    for ( j = 9; j >= 0; j--){	
        printf("%d ", a[j]);
    }
    return 0;
}

2.4.2-1有一个3X4的整数矩阵 ,矩阵的每个元素等于它的行号下标与列号下标的乘积减去它们的和;并找出其中最大值和最小值,记录它们的行号下标和列号下标并输出。
输入样例:无数据输入。
输出样例: max:1,row:2,col:3;min:-3,row:0,col:3

#include<stdio.h>
#include"math.h"
#include"conio.h"
 
int main()
{
	int i,j,max,min,r1,r2,c1,c2;
	i = 0;j = 0; 
	r1= 0;r2= 0; c1  = 0;c2  = 0;
	max = -2147483647;
	min = 2147483647;

	int a[3][4];
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
		  a[i][j] = i*j-(i+j);
		}
	}
	
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			if (a[i][j] > max)
			{
				max = a[i][j];
				r1 = i;
				c1 = j;
			}
			else if(a[i][j] < min){
				min = a[i][j];
				r2 = i;
				c2 = j;
			}
		}
	}
	printf("max:%d,row:%d,col:%d;min:%d,row:%d,col:%d", max, r1, c1, min, r2, c2);
}

3.从键盘输入3个字符串,存放在3x 100的二维数组中。输出最大的字符串。
例如:
输入:
sun
zhang
wang
输出:
zhang

#include<stdio.h>
#include<string.h>
int main()
{

    char arr[3][100];
    char max[100];
    int i;
    for( i = 0; i < 3; i++){
    	gets(arr[i]);
	}
    if( strcmp(arr[0],arr[1] ) > 0){
		strcpy(max,arr[0]);
	}
	else{
		strcpy( max,arr[1] );
	}
	if(strcmp(arr[2],max) > 0)
	{
		strcpy(max,arr[2]);
	}
          
    printf("%s\n",max);
    return 0;
}

4.4.4-1编程实现-个具有算术运算功能的简单计算器,用用户输入两个浮点数及运算类型,用整数1、2、3、4分别代表加、减乘、除,根据用户的输
入,计算结果并输出,输出结果保留1位小数。(通过函数实现)
例如:
输入: 33.1 22 1
输出: 33.1, 22.0, 55.1

#include<stdio.h>
int main()
{   
    double num1,num2;
	int c;
	int fcal(double num1,double num2,int c);
	scanf("%lf%lf%d",&num1,&num2,&c);
	fcal(num1,num2,c);
	return 0;
}	
	int fcal(double num1,double num2,int c) {
		
	while(1)
	{
		switch(c)
		{
			case 1:printf("%.1f %.1f %.1f\n",num1,num2,num1+num2);break;
			case 2:printf("%.1f %.1f %.1f\n",num1,num2,num1-num2);break;
			case 3:printf("%.1f %.1f %.1f\n",num1,num2,num1*num2);break;
			case 4:printf("%.1f %.1f %.1f\n",num1,num2,num1/num2);break;
			default:printf("输入错误!\n"); 
		}
		break; 
	}
	return 0;
}


5.4.5-1任意输入2个整数,编写2个函数分别求这2个整数的最大公约数和最小公倍数,结果在主函数中输出。
例如:
输入:1215
输出: 3,60

#include<stdio.h>
int main()
{
	int a,b;
	int gy,gb;
	int fy(int a,int b);
	int fb(int a,int b);
	
	scanf("%d%d",&a,&b);
	gb=fb(a,b);
	gy=fy(a,b);
	printf("%d,%d",gb,gy);
	return 0;
}

int fb(int a,int b)
{
	int i;
	
	for( i = ( a > b ? b:a );i > 1;i-- )
	{
		if( a % i == 0 && b % i == 0 )
			
			break;
	}
	return i;
	
}

int fy(int a,int b)
{
	int i;
	
	for( i=( a > b ? b:a );i < a*b;i++ )
	{
		if( i % a == 0 && i % b== 0 )
			break;
	}
		return i;
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值