首页 > 其他分享 >习题(三)

习题(三)

时间:2023-04-10 21:26:42浏览次数:16  
标签:输出 int h1 样例 printf 习题 输入

求奇数和

 

本题要求计算给定的一系列正整数中奇数的和。

输入格式:

输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。

输出格式:

在一行中输出正整数序列中奇数的和。

输入样例:

8 7 4 3 70 5 6 101 -1
 

输出样例:

116

 1 #include<stdio.h>
 2 void sum(void)
 3 {
 4     int n = 0;
 5     int sumn = 0;
 6     while(1)
 7     {
 8         scanf("%d",&n);
 9         if(n <= 0)
10         {
11           break;    
12         }
13         else if(n % 2 != 0)
14         {
15             sumn += n;
16         }
17     }
18     printf("%d",sumn);
19 }
20 int main(void)
21 {
22     sum();
23     return 0;
24 }

 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:

输入在一行中给出两个正整数M和N(≤1000)。

输出格式:

在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292
 

输出样例:

73 2044

 1 #include<stdio.h>
 2 int pub(int* m,int* n)
 3 {    
 4     int s,r;
 5     s = *m;
 6     r = *n;
 7     if(0<=*m<=1000 && 0<=*n<=1000)
 8     {
 9         if(*n>*m)
10         {
11             int temp = *m;
12             *m = *n;
13             *n = temp;
14         }
15         while(1)
16         {
17             int k = *m % *n;
18             if(k == 0)
19             {
20                 int u = s*r / (*n);
21                 printf("%d %d",*n,u);
22                 break;
23             }
24             else
25             {
26                 *m = *n;
27                 *n = k;
28             }
29         }
30     }
31     else 
32     {
33         return 0;
34     }
35 }
36 int main(void)
37 {
38     int m,n;
39     scanf("%d %d",&m,&n);
40     pub(&m,&n);
41     return 0;
42 }

 

 统计素数并求和  

本题要求统计给定整数M和N区间内素数的个数并对它们求和。

输入格式:

输入在一行中给出两个正整数M和N(1≤M≤N≤500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

输入样例:

10 31
 

输出样例:

7 143
 
 1 #include <stdio.h>
 2 int pn(int* m,int* n)
 3 {
 4     int i = 0;
 5     int j = 0;
 6     int u = 1;
 7     if(*m>*n|| *n>500 || *m<1)
 8     {
 9         return 0;
10     }
11     else if(*m < *n)
12     {
13         while(*m < *n)
14         {
15             for(int k =2; k<*m; k++)
16             {
17                 if(*m % k == 0)
18                 {
19                     (*m)++;
20                     u = 0;
21                     break;
22                 }
23                 else
24                 {
25                     u = 1;
26                 }
27             }
28             if(u == 1)
29             {
30                 i++;
31                 j= j + *m;
32                 (*m)++;
33                 /*实际上是因为*m++,是对m储存的值(也*m就是指向值的地址进行了修改,改变了指针指向) 
34                 而不是对*m指向的地址所储存的值进行修改,
35                 而(*m)++才是 对*m指向的地址所储存的值进行修改 
36                 所有原来我用的*m++*/
37             }
38             if(*m>*n)
39             {
40             i++;
41             j=j+*m;
42             printf("%d %d",i,j);
43             }
44         }        
45     }
46     else if(*m == *n)
47     {
48         int u = 0;
49         for(int k =2; k<*m; k++)
50             {
51                 if(*m % k == 0)
52                 {
53                     u = 0;
54                     break;
55                 }
56                 else
57                 {
58                     u = 1;
59                 }
60             }
61         if(u == 1)
62         {
63             printf("1 %d",*m);
64         }
65         else if(u == 0)
66         {
67            printf("0 0");
68         }
69     }
70     return 0;
71 }
72 int main(void)
73 {
74     int m,n;
75     scanf("%d %d",&m,&n);
76     pn(&m,&n);
77     return 0;
78 }

 

 

 1 #include <stdio.h>
 2 
 3 int is_prime(int num) // 判断是否是素数的函数
 4 {
 5     if (num <= 1) {
 6         return 0;
 7     }
 8     for (int i = 2; i * i <= num; i++) {
 9         if (num % i == 0) {
10             return 0;
11         }
12     }
13     return 1;
14 }
15 
16 int count_sum_prime(int m, int n) // 统计素数个数并求和的函数
17 {
18     int count = 0;
19     int sum = 0;
20     for (int i = m; i <= n; i++) {
21         if (is_prime(i)) {
22             count++;
23             sum += i;
24         }
25     }
26     printf("%d %d", count, sum);
27     return 0;
28 }
29 
30 int main(void)
31 {
32     int m, n;
33     scanf("%d %d", &m, &n);
34     if (m < 1 || n > 500 || m > n) {
35         printf("Invalid input\n");
36         return 0;
37     }
38     count_sum_prime(m, n);
39     return 0;
40 }

猴子吃桃问题

 

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?

输入格式:

输入在一行中给出正整数N(1<N≤10)。

输出格式:

在一行中输出第一天共摘了多少个桃子。

输入样例:

3
 

输出样例:

10
 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n, i, sum = 1;
 6     scanf("%d", &n);
 7     if(n <= 1 || n > 10)
 8     {
 9         return 0;
10     }
11     for (i = 1; i < n; i++)
12     {
13         sum = (sum + 1) * 2;
14     }
15     printf("%d\n", sum);
16     return 0;
17 }

 

 

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

输入格式:

输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。

输出格式:

为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!

输入样例:

3
169 136
150 81
178 155
 

输出样例:

You are wan mei!
You are tai shou le!
You are tai pang le!
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void kilo(int n)
 4 {
 5     int i = 1;
 6     int h,w;
 7     float h1,w1;
 8     while(i<=n)
 9     {
10         scanf("%d %d",&h,&w);
11         if(h > 120 && h < 200)
12         {
13             h1 = (h-100)*0.9;
14             //printf("%f\n",h1);//45
15         }
16         else 
17         {
18            continue;
19         }
20         if(w > 50 && w <= 300)
21         {
22             w1 = w/2.0;
23             //printf("%f\n",w1);//40.5
24         }
25         else 
26         {
27             continue;
28         }
29         if((w1-h1)>0 && (w1-h1) >= (0.1 * h1))
30         {
31             printf("You are tai pang le!\n");
32         }
33         else if((w1-h1) < 0 && (h1-w1) >= (0.1 * h1))
34         {
35             printf("You are tai shou le!\n");
36         }
37         else
38         {
39             
40             //printf("%f %f %f\n",w1-h1,h1-w1,0.1 * h1);
41             printf("You are wan mei!\n");
42         }
43         i++;
44     }
45 }
46 int main(void)
47 {
48     int n =0;
49     scanf("%d",&n);
50     if(n < 0 || n > 20)
51     {
52         return 0;
53     }
54     kilo(n);
55     return 0;
56 }

 

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int N; // 输入的人数
 7     int H, W; // 身高和体重
 8     double standard, error; // 标准体重和误差
 9     scanf("%d", &N); // 读入人数
10     for (int i = 0; i < N; i++) // 对每个人进行判断
11     {
12         scanf("%d %d", &H, &W); // 读入身高和体重
13         standard = (H - 100) * 0.9 * 2; // 计算标准体重,单位为市斤
14         error = fabs(W - standard); // 计算误差,取绝对值
15         if (error < standard * 0.1) // 如果误差小于标准体重的10%
16         {
17             printf("You are wan mei!\n"); // 输出完美身材
18         }
19         else if (W > standard) // 如果体重大于标准体重
20         {
21             printf("You are tai pang le!\n"); // 输出太胖了
22         }
23         else // 如果体重小于标准体重
24         {
25             printf("You are tai shou le!\n"); // 输出太瘦了
26         }
27     }
28     return 0;
29 }

 

 
 
 

标签:输出,int,h1,样例,printf,习题,输入
From: https://www.cnblogs.com/zaiyewujiang/p/17279320.html

相关文章

  • dfs入门习题
    主要记录一下个人遇见过的一些dfs的一些入门题目。有需要的可以跟着题单往下做。题单根据自己的刷题不定时更新。 第一题:https://codeforces.com/problemset/problem/510/B一道比较经典的dfs模板题。需要注意一下记忆化搜索。 **点击查看代码......
  • 天梯赛练习题 L3-004 肿瘤诊断(bfs)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805052626026496输入样例:3452111111111111001100110011101101000000101100000000000100011000输出样例:26LLdz[]={1,-1,0,0,0,0},dx......
  • CSAPP练习题2.11
    练习题2.111/*2CSAPP练习题2.11,并做了一些扩展3指定或者用户输入一个数组(100以内),打印反转前后的所有数组元素4*/5#include<stdio.h>67voidinplace_swap(int*x,int*y);//互换值8voidreverse_array(inta[],intcnt);//数组反转9voi......
  • LeetCode习题——x 的平方根(二分查找)
    ###x的平方根力扣链接:[x的平方根](https://leetcode.cn/problems/sqrtx/)####题目>给你一个非负整数x,计算并返回x的算术平方根。>>由于返回类型是整数,结果只保留整数部分,小数部分将被舍去。>>注意:不允许使用任何内置指数函数和算符,例如pow(x,0.5)或者x*......
  • java -- 练习题
    第一题1.定义一个Person类,要求有姓名和年龄,并且符合JavaBean标准,定义Student类继承Person,定义测试类,创建Student对象,要求创建Student对象的同时,指定Student对象的姓名为"张三",只能指定姓名不许指定年龄classPerson{privateStringname;privateintage;......
  • mysql 查询练习题
    1.查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。selectd.deptno,d.dname,d.loc,r.countfromdeptd,(selectdeptno,count(*)countfromempgroupbydeptno)rwhered.deptno=r.deptno;2.列出薪金比smith高的所有员工。select*fro......
  • 06算术运算符和习题
    算数运算符建议:给符号两端预留空格+-*/除%求余,取模在生活中23除7等于3余2代码中23/7=323%7=2例子:publicstaticvoidmain(String[]args){//46天,包含了几周零几天intweeks=46/7;intdays=46%7;System.out.pr......
  • 机器学习(五):混合高斯聚类(求聚类标签)+PCA降维(3维降2维)习题
    使用混合高斯模型GMM,计算如下数据点的聚类过程:\(Data=np.array([1,2,6,7])\)均值初值为:\(\mu_1,\mu_2=1,5\)权重初值为:\(w_1,w_2=0.5,0.5\)方差:\(std_1,std_2=1,1\)\(K=2\)10次迭代后数据的聚类标签是多少?采用python代码实现:fromscipyimport......
  • LeetCode习题——在排序数组中查找元素的第一个和最后一个位置(二分查找)
    在排序数组中查找元素的第一个和最后一个位置力扣链接:在排序数组中查找元素的第一个和最后一个位置题目给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你......
  • 结对编程——四则运算练习题
    结对编程题目如下:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython一个或两个运算符(a+b或a+b+c),100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0......