程序设计(一)

1、计算a+b。
每组数据+输出占一行,包含两个整数a,b,由空格隔开。输入0 0表示输入数据结束,0 0这组数据不用处理。
C++程序

#include <iostream>
 
using namespace std;
 
int main()
{
    int a, b;
 
    while(cin >> a >> b && (a || b)) {
        cout << a + b << endl;
    }
 
    return 0;
}

C程序

#include <stdio.h>
 
int main(void)
{
    int a, b;
 
    while(scanf("%d%d", &a, &b) != EOF && (a || b))
        printf("%d\n", a + b);
 
    return 0;
}

2、字符串排序
C程序

/* HDU2000 ASCII码排序 */
 
#include <stdio.h>
 
int main(void)
{
    char a, b, c, temp;
 
    while(~scanf("%c%c%c", &a, &b, &c)) {
        getchar(); //接收回车符,这样缓存里面就没有回车符了
 
        if(a > b) {
            temp = a;
            a = b;
            b = temp;
        }
        if(b > c) {
            temp = b;
            b = c;
            c = temp;
        }
        if(a > b) {
            temp = a;
            a = b;
            b = temp;
        }
 
        printf("%c %c %c\n", a, b, c);
    }
 
    return 0;
}

虽然可以使用 cin 和 >> 运算符来输入字符串,但当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。
为了解决这个问题,可以使用一个叫做 getline 的 C++ 函数。此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。

/* HDU2000 ASCII码排序 */
 
#include <iostream>
#include <string> //getline(cin,s)
#include <algorithm>//sort(s.begin(),s.end())
 
using namespace std;
 
const int N = 3;
 
int main()
{
    string s;
 
    while(getline(cin, s)) {
        sort(s.begin(), s.end());
 
        for(int i=0; i<N; i++) {
            if(i != 0)
                cout << " ";//字符以空格隔开
            cout << s[i];
        }
        cout << endl;
    }
    return 0;
}

#include <iostream>
#include <algorithm> //STL标准算法库
 
using namespace std;
 
int main()
{
    char c[3];
    while(scanf("%c%c%c", &c[0], &c[1], &c[2]) != EOF) {
        getchar();
 
        sort(c, c + 3);
 
        printf("%c %c %c\n", c[0], c[1], c[2]);
    }
 
    return 0;
}
 

3、两点距离 sqrt()
%mf, %.nf, %m.nf,
其中m表示输出数据的宽度;
n表示输出的实数保留n位小数;如:

float x=123.2323232323;

printf("%12f,%3.2f,%.2f",x,x,x);
在这里插入图片描述
4、球的体积
double 精度高,有效数字 16 位,用%lf。float 精度 7 位,用%f。所以r和V要定义为double保证精度。
5、绝对值
因为函数fabs()的功能是求绝对值,其参数和返回值都是double类型,所有变量也声明为double类型。
6、成绩转换(查表法)

/* HDU2004 成绩转换 */
 
#include <stdio.h>
 
int main(void)
{
    int score;
    char convert[] = "EEEEEEDCBAA";
 
    while(scanf("%d", &score) != EOF) {
          if(score < 0 || score > 100)
              printf("Score is error!\n");
          else
              printf("%c\n", convert[score/10]);
    }
 
    return 0;
}

7、日期算天数
C程序

/* HDU2005 第几天? */
 
#include <stdio.h>
 
int mdays[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 
int main(void)
{
    int y, m, d;
    while(scanf("%d/%d/%d", &y, &m, &d) != EOF) {
        if(y % 4 == 0 && (y % 100 || y % 400 == 0))
            mdays[2] = 29;
        else
            mdays[2] = 28;
 
        int days = 0, i;
        for(i = 1; i < m; i++)
            days += mdays[i];
        days += d;
 
        printf("%d\n", days);
    }
    return 0;
}
 

8、求奇数乘积
输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

/* HDU2006 求奇数的乘积 */
 
#include <stdio.h>
 
int main(void)
{
    int n, a, p;
 
    while(scanf("%d", &n) != EOF) {
        p = 1; /* 设置乘积初值 */
 
        /* 计算奇数乘积:逐个处理输入值 */
        while(n--) {
            scanf("%d", &a);
            if(a & 1)             /* 或 a % 2 == 1 */
                p *= a;     /* 奇数乘积 */
        }
 
        /* 输出结果 */
        printf("%d\n", p);
    }
 
    return 0;
}
 
if(m > n) {     // 保证m<=n,以便控制循环
            i = m;
            m = n;
            n = i;
        }
        for(i=m; i<=n; i++) {
            if(i & 1)                   // 或 i % 2 == 1
                odd_sum += i * i * i;   // 奇数立方
            else
                even_sum += i * i;      // 偶数平方
        }

以上代码参考于链接:https://tigerisland.blog.csdn.net/article/details/84929523

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值