2022山东理工大学pta程序设计---实验四1---13题解

7-1 sdut-C语言实验-A+B forInput-Output Practice (Ⅳ)Your task is to Calculate a + b.

输入格式:

Your task is to Calculate a + b.

输出格式:

For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input.

输入样例:

在这里给出一组输入。例如:

2
1 5
10 20

输出样例:

在这里给出相应的输出。例如:

6
30
#include <stdio.h>
int main()
{
   int n,i,a,b;//定义输入的组数,次数,依次输入的值;
   scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        scanf("%d %d",&a,&b);
        printf("%d\n",a+b);
    }
        return 0;
} 

 法二:

#include <stdio.h>
int main()
{
    int n;//n为组数;
    scanf("%d",&n);
    while(n--){
        int a,b;
        scanf("%d %d",&a,&b);
        printf("%d\n",a+b);
    }
   
}

7-2 sdut-C语言实验—两个数比较

求2个数中较大者。

输入格式:

第一行为测试的数据组数N,接下来的N行分别是两个待比较的整数。

输出格式:

输出N行,每一行的值为每组数中较大的整数。

输入样例:

2
1 2
15 10

输出样例:

在这里给出相应的输出。例如:

2
15
#include <stdio.h>
int main()
{
    int n,i;//输入组数,次数
    int a,b;//输入整数
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        scanf("%d %d",&a,&b);
        if (a>b)printf("%d\n",a);
        else printf("%d\n",b);
    }
    return 0;
}

7-3  sdut- C语言实验-计算1到n的和(循环结构)

从键盘上输入任意一个整数n,计算1到n的和。

输入格式:

从键盘输入任意整数n。

输出格式:

输出1到n的和。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

6
#include <stdio.h>
int main()
{
    int n;//输入整数n;
    scanf("%d",&n);
    int i,sum=0;//次数
    for (i=0;i<=n;i++){
       sum+=i; 
    }
    printf("%d\n",sum);
    return 0;
}

7-4 sdut-C语言实验-求阶乘(循环结构)

从键盘输入任意一个大于等于0的整数n,然后计算n的阶乘,并把它输出。
提示: 0!是 1 。

输入格式:

输入任意一个大于等于0的整数n。

输出格式:

输出n!

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

6
#include<stdio.h>
int main()
{
	int n;//输入的整数
	scanf("%d", &n);
	int i ;//定义次数;
	int m=1;//定义阶乘
     if (n > 0) {
		for (i = 1; i <= n; i++) {
			m *= i;
		}
	}
		printf("%d\n", m);
	return 0;
}

7-5 sdut-C语言实验- 做乘法

请用C语言编写一个程序。此程序接收一个正整数N,然后打印输出“N次N*(1->N)格式”的数据。例如:此程序接收正整数5,那会输出以下格式的数据:
51=5
5
2=10
53=15
5
4=20
5*5=25

输入格式:

只有一个正整数N(N<=100)。

输出格式:

输出共N行数据,如上面的例子所示。

输入样例:

在这里给出一组输入。例如:

5

输出样例:

在这里给出相应的输出。例如:

5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
#include <stdio.h>
int main()
{
    int n;//输入整数n;
    int i;//定义次数;
    scanf("%d",&n);//输入数据的行数
    for (i=1;i<=n;i++)
    {
        printf("%d*%d=%d\n",n,i,n*i);
    }
    return 0;
}

7-6 sdut-C语言实验-数列求和

数列求和是一类常见的问题,本题有一定的代表性:
求s=a+aa+aaa+aaaa+……+aa…aa(n位)
其中,a的值由键盘输入,位数n也由键盘输入。

输入格式:

第一行输入a的值;
第二行输入位数n。

输出格式:

输出对n个数完成求和运算后的结果。
比如a=3,n=6时,s=3+33+333+3333+33333+333333

输入样例:

3
6

输出样例:

在这里给出相应的输出。例如:

370368
#include <stdio.h>
int main()
{
    int a,n;
    scanf("%d\n%d",&a,&n);//键盘输入两个数
    int i;//定义次数
    int sum=0;int c=0;
    for (i=1;i<=n;i++)
    {
        c=c+a;//c本来是0,然后现在是3了
        a=a*10;//a=30;
        sum=c+sum;
    }
    printf("%d",sum);
    return 0;
}

 法二:

#include <stdio.h>
int main()
{
    int a,n;
    scanf("%d%d",&a,&n);
    int t=0;int sum=0;
    for(int i=1;i<=n;i++){
        t=t*10+a;
        sum+=t;
    }
    printf("%d\n",sum);
}

 7-7 求Fibonacci(斐波那契)数列的n项和

已知斐波那契数列有如下特点:第1,2两个数为1,1。从第三个数开始,该数是其前面两个数之和。即该数列为1,1,2,3,5,8,13,……。本题要求编写程序,计算该数列的前n项和。

输入格式:

键盘输入n(2≤n≤40)。

输出格式:

sum=S,S为斐波那契数列的前n项和。

输入样例:

10

输出样例:

sum=143
#include <stdio.h>
int main()
{
    int n,t=0;
    int a1=1;int a2=1; //前两个数据;
    int sum=0;
    scanf("%d",&n);
    //从第三个数开始的
    for(int i=3;i<=n;i++){
        t=a1+a2;//t的第一次值为2啦
        a1=a2;a2=t;
        sum+=t;
    }
    printf("sum=%d",sum+2);
} 

7-8 sdut-C语言实验- 简单计算

分数 12

全屏浏览题目

切换布局

作者 马新娟

单位 山东理工大学

接受从键盘输入的N个整数,输出其中的最大值、最小值和平均值(平均值为整除的商)。

输入格式:

第一行一个正整数N(N<=100);
第二行有N个用空格隔开的整数Ti (1 <= i <= N, 0 <= Ti <= 10000000)

输出格式:

三个有空格隔开的整数分别为最大值、最小值和平均值,其中平均值为整除的商。

输入样例:

在这里给出一组输入。例如:

5
1 2 3 5 4

输出样例:

在这里给出相应的输出。例如:

5 1 3
#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    int max = -0x3f3f3f3f;
    int min = 0x3f3f3f3f;
    int ave = 0;
    for(int i = 0; i < n; i++)
    {
        int x;
        scanf("%d", &x);
        if(x < min) min = x;
        if(x > max) max = x;
        ave += x;
    }
    printf("%d %d %d\n", max, min, ave / n);
    return 0;
}

7-9 sdut- C语言实验-判断素数(循环结构)

从键盘上输入任意一个正整数,然后判断该数是否为素数。
如果是素数则输出"This is a prime."
否则输出“This is not a prime.”

输入格式:

输入任意一个正整数n(1 <= n <= 1000000)。

输出格式:

判断n是否为素数,并输出判断结果:
如果n是素数则输出"This is a prime."
否则输出“This is not a prime.”

特别提醒:请注意对1的判定,1不是素数。

输入样例:

3

输出样例:

在这里给出相应的输出。例如:

This is a prime.
#include <stdio.h> 
int main() 
{ 
int n; 
scanf("%d", &n); 
int flag = 1; //flag = 1说明最开始他是一个素数 
for(int i = 2; i <= n - 1; i++) 
{ 
if(n % i == 0) //i是n的因子, 不满足素数的定义了→不是素数 
{ 
flag = 0; //不是素数 
break; 
} 
}
if(n == 1) flag = 0; //特判1 
if(flag == 0) printf("This is not a prime.\n"); 
else printf("This is a prime.\n"); 
return 0; 
}

 法二:

#include <stdio.h>
#include <math.h>

int main()
{
    int f = 1; //f是用来判断他是不是素数的标志, f = 1代表是素数, 0 表示不是素数
//最开始的时候假设他是一个素数
    int n;
    scanf("%d", &n);

    for(int i = 2; i <= sqrt(n); i++)
    {
        if(n % i == 0) 
        {
            f = 0;
            break;
        }
    }

    if(f == 0 || n == 1) printf("This is not a prime.\n");
    else printf("This is a prime.\n");
}
#include <stdio.h>
int main()
{
      int n;int f=1;
    scanf("%d",&n);
    for(int i=2;i<=n-1;i++){
        if(n%i==0)f=0;
    }
    if(n==1||f==0)
        printf("This is not a prime.");
    else printf("This is a prime.");
}

7-10 sdut-C语言实验- 求绝对值最大值

求n个整数中的绝对值最大的数。

输入格式:

输入数据有2行,第一行为n,第二行是n个整数。

输出格式:

输出n个整数中绝对值最大的数。

输入样例:

在这里给出一组输入。例如:

5
-1 2 3 4 -5

输出样例:

在这里给出相应的输出。例如:

-5
#include <stdio.h>
int main()
{
    int n,i;//输入第一行的数和循环次数
    int max,Max;
    scanf("%d",&n);
    int a,A;//用A代表绝对值
    for (i=1;i<=n;i++)
    {
      scanf("%d",&a);
       if (a>0){A=a;}
       else A=-a;
        if (A>Max)
            max=a;
           Max=A;//实质是改变了条件,便于下一个数据比较;
       }
        printf("%d",max);
         return 0;
}

7-11 sdut- C语言实验—分数序列

有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。

输入格式:

输入只有一个正整数n,1≤n≤10。

输出格式:

请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

5.166667
#include<stdio.h>
int main()
{
	int n ; int i;//输入整数;次数
    double a = 2;  double b = 1; double sum=0;//a是分子,b是分母,sum是和
	double c = 0;//交换;
	scanf("%d",& n);//输入整数
	for (i = 0; i<n; i++) {
		sum += a / b;
		c = a;
		a = a + b;
		b= c;
		
	}
	printf("%.6f\n", sum);
	return 0;
}


7-12 sdut-C语言实验- 平方数

飞飞特别喜欢平方数,可是他数学并不好,你能帮他计算 n 与 m 之间所有平方数之和吗?
提示:若一个整数的开方还是整数,它就是平方数。例如:4、9、16、25是平方数。n 和 m 均可能为 0 至 100000000 内的任意整数,n、m不一定有序。

输入格式:

第一行 T 代表数据的组数。

接下来有 T 行,每行两个整数n,m (0 <= n, m <= 100000000)

输出格式:

输出一个整数,代表所求区间内平方数之和。

输入样例:

3
1 4
10 3
17 20

输出样例:

在这里给出相应的输出。例如:

5
13
0
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	int n, i; n = 0;//输入整数的个数,循环次数
	int a, b,m,sum;//a,b代表输入的区间数据;m是用于储存变量
	sum = 0; int j;//j是区间内数据
	scanf("%d", &n);
	for (i = 1; i <= n; i++) {
		scanf("%d %d", &a, &b);//未知两个数的大小所以下面要比较确定区间
		if (a > b) {
			m = b; b = a; a = m;//到此实现a和b的互换即确定a小b大
		}//明确区间是(a,b)
		for (j = a; j <= b; j++) {//确定j在区间内
			m = sqrt(j);
			if (m * m == j) {
				sum += j;
			}
		}
		printf("%d\n", sum);
		sum = 0;
	}
	return 0;
}

7-13 sdut - C语言实验—圆周率

输入n值,并利用下列格里高里公式计算并输出圆周率:

输入格式:

输入公式中的n值。

输出格式:

输出圆周率,保留5位小数。

输入样例:

在这里给出一组输入。例如:

1

输出样例:

在这里给出相应的输出。例如:

2.66667
#include<stdio.h>
int main()
{
	int n;//输入整数;
	int i; double a=0;//a代表最后的值
	scanf("%d", &n);
	for (i = 1; i <=n;i++) {
		a += 4 * ((1.0 / (4 * i - 3)) - (1.0 / (4 * i - 1)));
	}
	printf("%.5f\n", a);
	return 0;
}

  • 12
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恰逢*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值