算法训练 整数平均值
时间限制:1.0s 内存限制:512.0MB
编写函数,求包含n个元素的整数数组中元素的平均值。要求在函数内部使用指针操纵数组元素,其中n个整数从键盘输入,输出为其平均值。
样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)
5
3 4 0 0 2
样例输出:
1
样例输入:
7
3 2 7 5 2 9 1
样例输出:
4
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int i,a[n],ave=0;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
ave+=a[i];
}
printf("%d",ave/n);
return 0;
}
思路分析:
①定义变量:包含元素个数,循环次数,一维数组,总数(初始化为0);
②通过for语句循环n次输出数组元素并累加;
③求出平均值输出。
算法训练 薪水计算
时间限制:1.0s 内存限制:512.0MB
问题描述
编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么他/她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在40 到50 个小时之间,那么对于前40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按1.5 倍计算。如果员工工作的时间超过了50 个小时,那么对于前40 个小时,仍按常规方法计算;对于40~50 个小时之间的部分,每小时的薪水按1.5 倍计算;而对于超出50 个小时的部分,每小时的薪水按2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他/她应该得到的周薪。
输入格式:输入只有一行,包括一个整数和一个实数,分别表示工作时间和每小时薪水。
输出格式:输出只有一个实数,表示周薪,保留小数点后2位。
输入输出样例
样例输入
40 50
样例输出
2000.00
#include<stdio.h>
int main(){
int n;
double m,s=0.0;
scanf("%d%lf",&n,&m);
if(n<=40) s=n*m;
if(n>40 && n<=50) s=40*m+(n-40)*1.5*m;
if(n>50) s=40*m+15*m+(n-50)*2*m;
printf("%.2f",s);
return 0;
}
思路分析:
①定义变量:工作时间,每小时薪水,总薪水(初始化为0);
②用if语句根据题目分为3类,并给出相应的总薪水:小于40,40到50,大于50;
③输出总薪水;
算法训练 统计字符次数
时间限制:1.0s 内存限制:512.0MB
输入一个字符串(长度在100以内),统计其中数字字符出现的次数。
样例输入
Ab100cd200
样例输出
6
#include<stdio.h>
int main()
{
char a[101];
int i=0,s=0;
gets(a);
for(i=0;*(a+i)!='\0';i++)
{
if(*(a+i)>=48&&*(a+i)<=57)
s++;
}
printf("%d",s);
return 0;
}
思路分析:
①定义变量:字符串(一维数组),次数,数字个数(初始化为0);
②输入字符串;
③for语句循环,直到字符为0,用if语句判断是否为数字,如果是数字个数加1;
④输出数字个数。
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
int cnt = 0;
for(int i = 0; i < s.length(); i++) {
if(isdigit(s[i]))
cnt++;
}
cout << cnt;
return 0;
}
网友评论