STUD 程序设计基础 实验四----for循环语句(全部题解)

发布于:2022-11-01 ⋅ 阅读:(645) ⋅ 点赞:(0)

7-1 sdut-C语言实验-A+B for Input-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 a,b,n,i;//定义计数器i,计算次数n,加数a,b 
    scanf("%d",&n);
    for( i = 0; i < n; i ++) //循环n次 
        {
            scanf("%d %d",&a,&b);
            printf("%d\n",a+b);//不要忘记换行符号⭐
        }
        return 0;    
}

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

求2个数中较大者。

输入格式:

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

输出格式:

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

输入样例:

2
1 2
15 10

输出样例:

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

2
15
#include<stdio.h>
int main()
{
    int N,i,a,b;//定义输入组数N,计数器i,待比较整数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,i;//定义计数器i,循环次数n
    int sum = 0;//一定要定义sum的初始值啊啊啊啊啊啊啊啊啊😫
    scanf("%d",&n);
    for( i = 1; i <= n; i ++)//从1加到n,i从1开始,注意n取等号
    {
        sum += i;//自增运算符 等价于 sum = sum + i;
    }
    printf("%d",sum);
    return 0;//耶耶
}

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

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

输入格式:

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

输出格式:

输出n!

输入样例:

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

3

输出样例:

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

6
#include<stdio.h>
int main()
{
    int n,i;
    int mul = 1;//这里乘积mul要定义为1,0*任何数=0,0!=1 
    scanf("%d",&n);
    for( i = 1; i <= n; i ++)
    {//不满足条件时,n==0,此时n<i,不符合循环条件,直接输出1 
        mul *= i;//自乘运算符 
    }
    printf("%d",mul);
    return 0;😘
}

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

请用C语言编写一个程序。此程序接收一个正整数N,然后打印输出“N次N*(1->N)格式”的数据。例如:此程序接收正整数5,那会输出以下格式的数据:
5*1=5
5*
2=10
5*3=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,i;
    scanf("%d",&N);//不要忘记取地址😶
    for( i = 1; i <= N; i ++)//依然是从1开始呐
    {
        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
/*思路:
		观察每一项都是可以拆开,拆成前面最大的位数+后面→
		有一种迭代10倍关系,所以可以利用累加:a = a + c,类似形式
		最后再找一个加和sum存起所有的项*/
#include<stdio.h>
int main()
{
	int n,i;//定义一共加和的次数&位数 
	int temp = 0;//保存每个项 
	int item;//每位的数字 
	int sum = 0;//定义累加器😴一定要初始化为0
	scanf("%d \n %d",&item,&n);
	for( i = 0; i< n; i ++)
	{//下面三步运算过程一定要在草稿纸上写,非常关键⭐⭐⭐→体现思考过程
		temp = temp + item;//temp表示每一项,如33 333 3333
		sum += temp;//预先加
		item = item*10;
        /*拆成两项相加:30+3/300+33/3000+333/后数是上一步
        的temp,前数是上一步的item*10,从而都累加到sum里😙*/
	}
	printf("%d",sum);
	return 0;
 } 

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

题解1:常规实现

#include<stdio.h>
/*考虑到斐波那契数列的特殊性,同样要用一个变量temp把
每一次的前两项存起来,再累加到sum里,在这个过程中
更要注意i的取值问题*/
int main()
{
    int n,i,num1,num2;
    num1 = 1;
    num2 = 1;
    int item = 0;
    int sum = 0;//不要忘记初始化
    item = num1 + num2;//⭐
    scanf("%d",&n);
    //1、1、2、3、5、8、13
    //这里怎么去找这个规律呢
    /*      num1     num2     item
             1        1         2
             1        2         3
                      3         5
                                8
      sum累加的是item其他的是中间变量,找到num
      和item的关系*/
    //显而易见:num2 = item(上一次的)
    for( i = 1; i < n; i ++)
    {//✌值得注意这里加了n-1次,而不是n次,所以i从1开始到n
        sum += item;//item是第一次的和,所以在前面⭐要有初值
        item = num1 + num2;
        num1 = num2;
        num2 = item;
    }
    printf("sum=%d",sum);//注意这里的格式,养成审题好习惯
    return 0;
}

题解2:数组实现

#include<stdio.h>
int main()
{
    int n,i;
    int sum = 2;//递推形式加不到前两项,前两项和为2⭐
    int arr[40]={1,1};//只定义数组前两个变量
    scanf("%d",&n);
    for( i = 2; i < n; i ++)
    {
        arr[i] = arr[i-1] + arr[i-2];//满足斐波那契递推形式
        sum += arr[i];//利用计数器,每次加和arr[2]+arr[3]+arr[4]……
    }
    printf("sum=%d",sum);//注意打印格式😶
    return 0;
}

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

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

输入格式:

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

输出格式:

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

输入样例:

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

5
1 2 3 5 4

输出样例:

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

5 1 3

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到