| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1068 人关注过本帖
标题:请教两个编程题
只看楼主 加入收藏
中国坦克
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2010-3-22
结帖率:57.14%
收藏
已结贴  问题点数:10 回复次数:15 
请教两个编程题
1.编写程序:定义双精度实型变量h并赋值,对h中的值保留2个小数,并对第三位进行四舍五入(规定h中的值为正数)。例如h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。


2编写程序;定义三个基本整型变量a,b,c,将两个两位数的整数a,b合并成一个整数放在c中,合并的方式是:将a的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如:当a=45,b=12.调用该函数后,c=4251.

这两道题怎么做啊 请高手指点啊
搜索更多相关主题的帖子: 编程 编写程序 
2010-10-30 19:53
我是西瓜
Rank: 2
等 级:论坛游民
帖 子:61
专家分:97
注 册:2010-10-22
收藏
得分:0 
1
#include<stdio.h>
main()
{
    float a=8.32433,b=8.32533;
    printf("%.2f,%.2f",a,b);
}

2
#include<stdio.h>
main()
{
    int a,b,c,a1,a2,b1,b2;
printf("输入俩位数\n");
scanf("%d%d",&a,&b);
if(a>99||b>99)
printf("input error");
a1=a/10;
a2=a%10;
b1=b/10;
b2=b%10;
c=a1*1000+a2*10+b1+b2*100;
printf("%d",c);
 }

[ 本帖最后由 我是西瓜 于 2010-10-31 16:29 编辑 ]
收到的鲜花
  • 大乔2010-11-03 14:36 送鲜花  1朵   附言:我很赞同
2010-10-31 14:37
江水终归海
Rank: 2
等 级:论坛游民
帖 子:6
专家分:24
注 册:2010-10-25
收藏
得分:0 
朋友这么做,我在这里只写关键部分:
1、 printf("%.2f",h);/*四舍五入*/
2、
{ int a,b,c;
 int s1,s2,s3,s4;
 s1=a/10;/*a的十位*/
 s2=a%10;/*a个位*/
 s3=b/10;/b十位/
 s4=b%10;/*b个位*/
 c=s1*1000+s4*100+s2*10+s3;}
其他细节你自己完善一下吧
2010-10-31 14:52
kelas
Rank: 6Rank: 6
等 级:侠之大者
帖 子:176
专家分:434
注 册:2010-5-28
收藏
得分:0 
#include<stdio.h>
#include<math.h>

double myround(double x)
{
if (ceil(x) - x > 0.5)
x = ceil(x) - 1;
else
x = ceil(x);
printf("%lf\n",x);
return 0;
}

int main()
{
double i;
scanf("%lf",&i);
myround(i);
return 0;
}

2010-10-31 16:15
chinesebear
Rank: 2
等 级:论坛游民
帖 子:23
专家分:29
注 册:2010-9-30
收藏
得分:0 
程序代码:
/*1.编写程序:定义双精度实型变量h并赋值,对h中的值保留2个小数,并对第三位进行四舍五入(规定h中的值为正数)。例如h值为8.32433,则函数返回8.32;h值为8.32533,则函数返回8.33。
*/
#include<stdio.h>
#include<string.h>
#include<math.h>


#define MAX 100
/*MAX值不要太大,因为作为数组的下表的,
不然需要分配很大的空间给数组*/

main(void)
{
    int i=0,j,k;
    char h[MAX], c;
    printf("输入数值(20位以内):");
    /*将输入的值作为字符串处理,遍历字符串*/
    while((c = getchar())!= EOF&&c != '\n')
    h[i++] = c;
    /*对输入数字进行四舍五入*/
    for(j=0 ; j<i; j++)
    if(h[j] == '.'&& h[j+3] >= '5')
        {h[j+2] += 1;break;}/*注意这里break,自己想一下为什么*/
        h[j+3] = '\0';/*结束字符串,两位小数后面的数都不打印*/
     printf("保留两位小数四舍五入后的数值:%s\n", h);
    return 0;
}
第一题的程序,楼组慢慢看吧
2010-10-31 21:20
chinesebear
Rank: 2
等 级:论坛游民
帖 子:23
专家分:29
注 册:2010-9-30
收藏
得分:0 
程序代码:
/*2编写程序;定义三个基本整型变量a,b,c,将两个两位数的整数a,b合并成一个整数放在c中,
合并的方式是:将a的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次
放在c数的个位和百位上。例如:当a=45,b=12.调用该函数后,c=4251.
*/ 

#include<stdio.h>
#include<string.h>
/*把正当成字符串来处理,这样可以避免繁杂的运算*/
main(void)
{
    int i;
    char a[3],b[3],c[6];/*数组小标稍微大一点*/
    printf("输入整数a:");
    scanf("%s" , &a);
    printf("输入整数b:");
    scanf("%s" , &b);
    c[0]= a[0];
    c[2]= a[1];
    c[1]= b[1];
    c[3]= b[0];
    printf("输出整数c:" );
    for(i=0 ; i<4; i++)
    printf("%c", c[i]);
    printf("\n");
    return 0;
   
}
第二题的程序,楼组好好研究研究!
2010-10-31 22:19
Imtheone
Rank: 2
等 级:论坛游民
帖 子:78
专家分:34
注 册:2010-4-23
收藏
得分:0 
不错  可是好像有漏洞啊  你再看看  楼上
2010-10-31 22:27
思恋到心碎
Rank: 2
等 级:论坛游民
帖 子:13
专家分:27
注 册:2010-10-22
收藏
得分:0 
想问下chinesebear如果小数点第二位为9怎么办?
2010-11-03 13:42
大乔
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2010-11-3
收藏
得分:0 
回复 4楼 kelas
能解释下吗
2010-11-03 14:39
落拓
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:173
注 册:2010-9-29
收藏
得分:0 
第一题
#include<stdio.h>
main()
{
    double h;
    int a;
    scanf("%lf",&h);
   
    h*=1000;
    h+=5;
    a=(int)h;
    a/=10;
    h=a;
    h/=100;

    printf("%.2lf",h);
}

第二题
#include<stdio.h>
main()
{
    int a,b,c=0;
    scanf("%d%d",&a,&b);

    c=1000*(a/10)+100*(b%10)+10*(a%10)+b/10;
    printf("%d",c);
}
2010-11-03 15:21
快速回复:请教两个编程题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.069718 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved