当前位置:   article > 正文

中国大学 MOOC C语言程序设计----编程部分答案解析_题目内容:编写程序,找出给定的n个数中的最大值及次大值。 输入格式:在第一行中输

题目内容:编写程序,找出给定的n个数中的最大值及次大值。 输入格式:在第一行中输

C语言程序设计----编程部分答案解析

编程题目7

1最大与次大值。(20分)

题目内容:编写程序,找出给定的n个数中的最大值及次大值。

输入格式:在第一行中输入一个正整数n(1<n≤10)。第二行输入n个整数,用英文逗号,隔开。

输出格式:在一行中输出最大值及次大值,中间用英文逗号,隔开。

输入样例:7

             12,1,2,5,4,7,3
  • 1

输出样例:12,7

时间限制:500ms 内存限制:31kb

代码:

#include<stdio.h>
int main()
{       int A[10];
		int len; 
		scanf("%d",&len); 
		for(int k=0;k<len;k++)

			scanf("%d,",&A[k]);
	 	for(int i=0;i<len;i++)
            for(int j=i;j<len;j++)
            {
               if(A[i]>A[j])
               {
                   int t=A[i];
                   A[i]=A[j];
                   A[j]=t ;
               }
            }
           
			printf("%d,%d",A[len-1],A[len-2]);
 } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2数组逆序。(20分)

题目内容:编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放并输出元素值。

输入格式:在第一行中输入一个正整数n(1≤n≤10)。第二行输入n个整数,用英文逗号,分开。

输出格式:在一行中输出这n个整数的处理结果,相邻数字中间英文逗号,分开,行末不得有多余空格。

输入样例: 8

              12,24,8,1,3,2,5,7
  • 1

输出样例: 7,5,2,3,1,8,24,12

时间限制:500ms 内存限制:32000kb

代码:

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

3素数排序。(30分)

题目内容:输入10个正整数到a数组中,对a[10]数组中的素数升序排序。

输入格式:在一行中输入10个用英文逗号,隔开的正整数。

输出格式:在一行中输出升序的素数序列,每个数之间用英文逗号,隔开,末尾没有多余的空格。

输入样例:10,3,1,5,4,8,7,2,9,11

输出样例:2,3,5,7,11

输入样例:16,12,1,6,4,8,14,18,24,21

输出样例:Not found!

时间限制:500ms 内存限制:32000kb

代码:

#include<stdio.h>
int main()
{
	int a[10];
	int b[10]={0};
	int i,j=0,k;
	int *p ;
	int count=0;
	scanf("%d",&a[0]);
	for( i=1;i<10;i++)
	{
		scanf(",%d",&a[i]);
	}
	//===============================
	while (j<10)
	{
		for(i=0;i<9;i++)
		{
			if(i<9)
			{
				if(a[i]>a[i+1])
				{
					b[i]=a[i+1];
					a[i+1]=a[i];
					a[i]=b[i];
				}
			}
		}
		j++;
	}
	// ==============================
	int c[10]={0};
	for(i=0;i<10;i++)
	{
		if(a[i]==2||a[i]==3||a[i]==5||a[i]==7||a[i]==11)
		{
			count++;
			c[i]=a[i];
			
		}
		if(a[i]%2!=0&&a[i]%3!=0&&a[i]%5!=0&&a[i]%7!=0&&a[i]%9!=0&&a[i]%11!=0)
		{
			count++ ;
			c[i]=a[i];
		}
		if(a[i]==1)
		{
			count--; 
			c[i]=0;
	    }
	}
//=============================
	int d[count];
	if(count==0)
	{
		printf("Not found!");
	}
	j=0;
	for(i=0;i<10;i++)
	 {
	 	if(c[i]!=0)
	 	{
	 		d[j]=c[i];
	 		j++;
	 	 } 
     }
     for(k=0;k<count;k++)
     {
     	if(k<count-1)
     	{
     		printf("%d,",d[k]);
		 }
		 else
		 {
		 	printf("%d",d[k]);
		 }
	 }
	
	
}
  • 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

分析:前半部分是输入—>排序—>判断素数后,存储(count为计数器,由于样例给的数比较小,所以没有考虑过大的素数)—>遍历后判断输出

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号