在医院打点滴时,假设点滴的规律是,滴一滴,停一下,再滴两滴,停一下,再滴三滴,停一下。每一滴1毫升,用1秒,停一下的时间也是1秒。请问一瓶V毫升的药液,多久输完?其中V是小于5000的正整数。
10
13
#include
using namespace std;
int V, t, sud;
int main() {
scanf ("%d", &V);
for (int i = 1; ; i++) {
sud += i;
if (sud >= V) {
t = V + i - 1;
break;
}
}
printf ("%d\n", t);
return 0;
}
键盘输入一个大于1的正整数n,判断其是素数还是合数,如果是素数,则输出“素数”,如果是合数,则输出其所有约数(约数包括1和它本身),约数间用空格分隔。
13
素数
24
1 2 3 4 6 8 12 24
#include
#include
using namespace std;
bool check(int a) {
if (a == 2) return 1;
for (int i = 2; i < sqrt(a); i++) {
if (a % i == 0) return 0;
} return 1;
}
void print(int a) {
for (int i = 1; i <= a; i++)
if (a % i == 0) printf ("%d ", i);
puts("");
}
int n;
int main() {
scanf ("%d", &n);
if (check(n)) printf("素数\n");
else print(n);
return 0;
}
某仓库共有ABCDE五种货物,每天需要补货的数量不同,每种货物的单价不同,如下所示。由键盘输入五种货物需要补货的数量,请计算出当日仓库需支付多少货款。由于补货时不一定按照ABCDE的顺序补货,建议使用switch语句与循环语句编写。
货物名称 货物单价
A 10
B 5
C 3
D 20
E 13
B 3 E 2 A 1 D 4 C 10
161
#include
#include
#include
using namespace std;
int tot, flag;
char ch1, ch2, ch3;
int num;
int main() {
for (int i = 1; i <= 5; i++) {
ch1 = getchar();
//putchar(ch1);
scanf (" %d", &num);
ch2 = getchar();
//putchar(ch2 + 1);
if (ch1 == 'A') flag = 1;
if (ch1 == 'B') flag = 2;
if (ch1 == 'C') flag = 3;
if (ch1 == 'D') flag = 4;
if (ch1 == 'E') flag = 5;
if (flag) {
if (flag == 1) tot += 10 * num;
if (flag == 2) tot += 5 * num;
if (flag == 3) tot += 3 * num;
if (flag == 4) tot += 20 * num;
if (flag == 5) tot += 13 * num;
flag = 0;
}
if (ch2 == '\n') break;
}
printf ("%d\n", tot);
}
编程:将1~100的自然数存到一个有100个元素的整型数组中(数组的下标为0~99),请在屏幕上输出如下数据:1)在屏幕上输出存储的100个自然数,每行输出10个,各数值之间用空格隔开。2)将序号是素数的数据输出到屏幕上,格式要求:每行输出10个,各数值之间用一个空格隔开。
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
3 4 6 8 12 14 18 20 24 30
32 38 42 44 48 54 60 62 68 72
74 80 84 90 98
#include
#include
using namespace std;
bool check(int a) {
if (a <= 1) return 0;
if (a == 2) return 1;
for (int i = 2; i <= sqrt(a); i++) {
if (a % i == 0) return 0;
}
return 1;
}
int prime[100], pos;
int main() {
for(int i = 1; i <= 100; i++) {
if (i % 10 == 0) printf ("%d\n", i);
else printf ("%d ", i);
//else printf(" ");
if (i - 1 && check(i - 1)) prime[pos++] = i;
}
for (int i = 0; i < pos - 1; i++) {
if ((i + 1) % 10 == 0) printf("%d\n", prime[i]);
else printf ("%d ", prime[i]);
//else printf (" ");
} printf ("%d",prime[pos - 1]);
return 0;
}
编写一个评分统计程序。从键盘获取8个评委打分的百分制成绩(double类型),统计平均分时,去掉一个最高分和一个最低分,其余6个分数的平均值即为最后得分。请将这个分数输出到屏幕上,格式为:平均成绩是XXX。
98.5 88 90 93 94 90.4 89 92
平均成绩是91.4
#include
#include
using namespace std;
double a[8], tot;
double minn = 100, maxx = 0;
int main() {
for (int i = 0; i < 8; i++) {
scanf ("%lf", &a[i]);
minn = minn < a[i] ? minn : a[i];
maxx = maxx > a[i] ? maxx : a[i];
tot += a[i];
}
//printf ("平均成绩是%lf\n", (tot - minn - maxx)/6);
cout << "平均成绩是" << (tot - minn - maxx) / 6 << endl;
return 0;
}
从键盘输入10个整型数据,将它们存在数组中,采用选择排序算法,按从小到大排序,并将排序后的数据输出到屏幕上,数据间用一个空格隔开。
1 100 4 6 60 9 10 90 12 45
1 4 6 9 10 12 45 60 90 100
#include
using namespace std;
int a[10], pos;
int main() {
for (int i = 0; i < 10; i++)
scanf ("%d", &a[i]);
for (int i = 0; i < 10; i++) {
pos = i;
for (int j = i + 1; j < 10; j++)
if (a[j] < a[pos]) {
pos = j;
}
int t = a[i];
a[i] = a[pos];
a[pos] = t;
}
for (int i = 0; i < 10; i++)
printf ("%d ", a[i]);
return 0;
}
定义一个结构型变量(包括年、月、日),并从键盘上获取该变量的值,计算该日在本年中是第几天,输出到屏幕上,格式为:“X年X月X日是本年中的第X天。”(提示:注意闰年问题)。
2017 4 1
2017年4月1日是本年中的第91天。
2004 12 21
2004年12月21日是本年中的第356天。
#include
using namespace std;
int rn[12] {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int nm[12] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool check (int a) {
if (a % 400 == 0) return 1;
if (a % 4 == 0 && a % 100 != 0) return 1;
if (a % 100 == 0 && a % 400 != 0) return 0;
return 0;
}
int n, y, r, tot;
int main() {
scanf ("%d %d %d", &n, &y, &r);
//printf ("%d\n", check(n));
if (check(n)) {
for (int i = 1; i <= y; i++) {
if (i < y) tot += rn[i - 1];
if (i == y) tot += r;
}
} else {
for (int i = 1; i <= y; i++) {
if (i < y) tot += nm[i - 1];
if (i == y) tot += r;
}
}
printf ("%d年%d月%d日是本年中的第%d天。\n", n, y, r, tot);
return 0;
}
从键盘输入一行或几行字符串,行数由键盘输入,一行字符串用字符数组存储。请统计所输入的字符串中26个字母(不区分大小写)出现的次数,并将出现次数非零的字母统计结果输出到屏幕上,格式参见样例。如果没有字母,请输出字符串中无字母。
1
I come quickly !
c:2
e:1
i:2
k:1
l:1
m:1
o:1
q:1
u:1
y:1
#include
#include
#include
using namespace std;
string s;
int a[27];
int flag;
int main() { int n;
scanf ("%d\n", &n);
for (int i = 1; i <= n; i++) {
getline(cin, s);
for (int j = 0; j < s.length(); j++) {
if (s[j] >= 'A' && s[j] <= 'Z') s[j] += 'a' - 'A';
if (s[j] >= 'a' && s[j] <= 'z') a[s[j] - 'a'] ++;
}
}
for (int i = 0; i <= 25; i++) {
if (a[i]) {
printf ("%c:%d\n", i + 'a', a[i]);
flag = 1;
}
} if (!flag) printf ("字符串中无字母。");
return 0;
}