山东理工大学PTA实验四for循环

7-1 A+B for Input-Output Practice (Ⅳ)

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

7-2 计算1到n的和(循环结构)

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

7-3 判断素数(循环结构)

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

7-4 求阶乘(循环结构)

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

7-5 数位数

#include<stdio.h>
int main()
{
   int n,i=0,a;
   scanf("%d",&n);
   while(n>0)
   {
       a=n%10;
       n/=10;
       i++;
   }
   printf("%d",i);
   return 0;
}

7-6 数列求和

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

7-7 完美的素数

#include<stdio.h>
int main()
{
    int n,i,j,k,a;
    int flag=1;
    int sum=0;
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
    {
        if(n%i==0)
            flag=0;
    }
        if(flag==1)
        {
            while(n>0)
            {
                a=n%10;
                n/=10;
                sum+=a;
                j++;
            }
            for(k=2;k<=sum-1;k++)
            {
                 if(sum%k==0)
                    flag=0;
            }
        }
        if(flag==0)
            printf("NO");
        else
            printf("YES");
    return 0;
}

7-8 虎子的虎年理财计划

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

7-9 两个数的比较

#include<stdio.h>
int main()
{
    int N,i,a,b;
    scanf("%d",&N);
    for(i=1;i<=N;i++)
    {
        scanf("%d %d",&a,&b);
        if(a>b)
            printf("%d\n",a);
        else
            printf("%d\n",b);
    }
    return 0;
}

7-10 求绝对值的最大值

#include<stdio.h>
int main()
{
	int n,i=0;
	int MAX, max;
	int A, x;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &x);
		if (x < 0)
			A = -x;
		else
			A = x;
		if (A > MAX)
		{
			max = x;
		}
		MAX = A;
	}
	printf("%d\n", max);
	return 0;
}

7-11 平方数

#include<stdio.h>

#include<math.h>
int main()
{
    int n, m, N;
    int i, j, t;
    int sum = 0;
    scanf("%d", &N);
    for (i = 1; i <= N; i++)
    {
        scanf("%d %d", &n, &m);
        if (n > m)
        { t = m; m = n; n = t; }
        for (j = n; j <= m; j++)
        {
            t = sqrt(j);
            if (t * t == j)
            { sum += j; }
        }
        printf("%d\n", sum);
        sum = 0;
    }
    return 0;
}

7-12 圆周率

#include<stdio.h>
int main()
{

	int n, i = 0;
	float a, sum = 0;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		a = 1.0 / (4 * i - 3) - 1.0 / (4 * i - 1);
		sum += 4 * a;
	}
	printf("%.5f", sum);
	return 0;
}

7-13 做乘法

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

7-14 简单计算

#include<stdio.h>
#include<limits.h>
int main()
{
	int n, m;
	int i = 0,sum=0;
	int max = -0x3f3f3f3f;
	int min = 0x3f3f3f3f;
	scanf("%d\n", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &m);
		if (m > max)
		{
			max = m;
		}
		if (m < min)
		{
			min = m;
		}
		sum += m;
	}
	printf("%d %d %d", max, min, sum / n);
	return 0;
}

7-15 新判断素数(循环结构)

#include<stdio.h>
int main()
{
    int n,i=0;
    int flag=1;
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)
    {
        if(n%i==0)
            flag=0;
    }
    if(flag==0||n==1)
        printf("NO.");
    else
        printf("YES.");
    return 0;
}

7-16 分数序列

#include<stdio.h>
int main()
{
    int n,i;
    double sum=0;
    double a=2,b=1,c=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum+=a/b;
        c=a;
        a=a+b;
        b=c;
    }
    printf("%.6f",sum);
    return 0;
}

7-17 计算阶乘和

#include<stdio.h>
int main()
{
    int n,s=1,S=0;
    int i=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        s*=i;
        S+=s;
    }
    printf("%d",S);
    return 0;
}

7-18 水仙花数

#include <stdio.h>
int pow(int m,int n)
{   int j=1,s=1;
while(j<=n)
{
    s=s*m;
    j++;
}
return s;
}
int main()
{
    int x,n,i;
    scanf("%d",&n);
    for(x=pow(10,n-1);x<pow(10,n);x++)
      { 
        int b = x,a,sum=0;
        for (i = 1; i <= n; i++)
        {
            a = b % 10;
            b/=10;
            sum+= pow(a, n);
        }
        if (sum == x)
        {
            printf("%d\n",x);
        }
      }
        return 0;
    }

7-19 输出整数各位数字

#include<stdio.h>
int main()
{
    long num=0,t,c=1,a;
    int i=0;
    scanf("%ld",&num);
    t=num;
    while(t>9)
    {
        t/=10;
        c*=10;
    }
    for(i=1;c>0;i++)
    {
        a=num/c;
        printf("%ld ",a);
        num%=c;
        c/=10;
        
    }
    return 0;
}

7-20 打印九九乘法表

#include<stdio.h>
int main()
{
    int i,j,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%d*%d=%-4d",j,i,j*i);
        }
        printf("\n");
    }
    return 0;
}

7-21 找完数

#include<stdio.h>
int main()
{
    int m,n,i,j,k,s;
    int flag=0;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++)
    {
        int s=0;
        for(j=1;j<i;j++)
        {
            if(i%j==0)
            {s+=j;}
        }
        if(s==i)
      {      
            flag=1;
       printf("%d = ",s);
        for(k=1;k<s;k++)
        {
            if(s%k==0)
          { 
            if(k==s/2)
                printf("%d",k);
            else
                printf("%d + ",k);
          }
        }
       printf("\n");
      }
    }
            if(flag==0)
            printf("None");
 return 0;
}

7-22 编程打印空心字符菱形

#include<stdio.h>
#include<math.h>
int main()
{
    char ch;
	int h, i = 1, j = 1;//i为第几行,j=1为每行第一个字母出现开始为1序号
	int space = 1;//前面的空格字符数
    scanf("%c %d", &ch, &h);
	int middle = (h / 2) + 1;
	int num;//num的意思是关于middle(中间行)的对称  例:h=5,middle=3,那么num=1对应num=5,num=2对应num=4
	
	for (i = 1; i <= h; i++)//从第一行开始i=1,假设h=5,middle=3
	{
		for (space = 1; space <= fabs(middle - i); space++)//1<=space<=2 在第一行循环两次打两次空格
		{
			printf(" ");
		}
		if (i <= middle)//第一行小于middle=3,所以所对应还为一,若i=4的话就对应num=2了
		{
			num = i;
		}
		else
		{
			num = h - i + 1;
		}
		for (j = 1; j <= 2 * num - 1; j++)//还是在第一行
		{
			if (j == 1 || j == 2 * num - 1)//打完空格(space)后开始输入字母,在开始和结束打字母
				printf("%c", ch + num - 1);
			else//字母之间打空格
				printf(" ");
		}
		printf("\n");//第一层结束回车开始第二行即i=2再循环开始
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值