系列二:(数组)含答案解析 C语言经典编程题 期末复习笔记

本文介绍了C语言中数组的各种操作,包括输入整数求和、斐波那契数列、求最小值、选择排序和冒泡排序等。还展示了二维数组的元素交换、方阵下三角元素之和的计算以及杨辉三角的打印。通过实例代码详细解析了数组处理和排序算法的基本应用。
摘要由CSDN通过智能技术生成

清华大学出版社 C语言程序设计教程内容

如果对您有帮助,别忘了关注博主~

包含内容:选择结构,循环结构,数组,函数,结构体,共用体



一、数组


1.输入10个整数,求和。

#include <stdio.h>
#include <math.h>
int main()
{  
   	int a[10] ,i,sum=0;
   	for(i=0;i<10;i++)
   	{

   		scanf("%d",&a[i]);   	
   		sum=sum+a[i];
	}
   	printf("sum=%d\n",sum);


	return 0;
}

2.输入n个整数,求和 

#include <stdio.h>
#include <math.h>
int main()
{  
   	int a[10] ,i,n,sum=0; //n<=10
   	scanf("%d",&n);
   	for(i=0;i<n;i++)
   	{

   		scanf("%d",&a[i]);   	
   		sum=sum+a[i];
	}
   	printf("sum=%d\n",sum);   	

	return 0;
}

3.计算fibonacci数列(斐波那契数列)

#include <stdio.h>
#include <math.h>
int main()
{  
   	int f[20],i;
   	f[0]=f[1]=1;
   	for(i=2;i<20;i++)
   	{
   		f[i]=f[i-1]+f[i-2];
	   }
	for(i=0;i<20;i++)
	{
		printf("%6d",f[i]);
		if((i+1)%5==0)printf("\n");
	}
	return 0;
}

4.输入n个整数,求最小值(比较值法,下标法)

//比较值法
#include <stdio.h>
#include <math.h>
int main()
{  
   	  int i,min,n,a[10];
      scanf("%d",&n);
      for(i=0;i<n;i++)
         scanf("%d",&a[i]);
      min=a[0];
      for(i=1;i<n;i++)
          if(a[i]<min)min=a[i];
      printf("%d\n", min);
	return 0;
}
//下标法求最值
#include <stdio.h>
#include <math.h>
int main()
{  
   	  int i,index,n,a[10];
      scanf("%d",&n);
      for(i=0;i<n;i++)
         scanf("%d",&a[i]);
      index=0;
      for(i=1;i<n;i++)
          if(a[i]<a[index])index=i;
      printf("%d\n", a[index]);
	return 0;
}

5.输入n个整数,用选择法将他们从小到大排序后输出。

#include <stdio.h>
#include <math.h>
int main()
{  
   	  int i,index,n,a[10],t,k;
      scanf("%d",&n);
      for(i=0;i<n;i++)
         scanf("%d",&a[i]);
      for(k=0;k<n-1;k++)
      {

	      index=k;
	      for(i=k+1;i<n;i++)
	          if(a[i]<a[index])index=i;
	      t=a[k];
	      a[k]=a[index];
	      a[index]=t;
      }
      for(i=0;i<n;i++)
      	printf("%3d",a[i]);
	return 0;
}

6.用冒泡法对10个数排序(由小到大)。 

#include <stdio.h>
#include <math.h>
int main()
{  
   	  int a[10],i,t,k;
   	  for(i=0;i<10;i++)
   	  	scanf("%d",&a[i]);
   	  for(k=0;k<9;k++)
   	  {
   	  	for(i=0;i<9-k;i++)
   	  		if(a[i]>a[i+1])
   	  		{
   	  			t=a[i];
   	  			a[i]=a[i+1];
   	  			a[i+1]=t;
			}
		 }

      for(i=0;i<10;i++)
      	printf("%3d",a[i]);
	return 0;
}

7.将一个二维数组行和列元素互换,存到另一个二位数组中。例如:

#include <stdio.h>
#include <math.h>
int main()
{  
   	int a[2][3]={{2,3,4},{5,6,7}},b[3][2],i,j;
   	for(i=0;i<2;i++)
   		for(j=0;j<3;j++)
   			b[j][i]=a[i][j];
   	for(i=0;i<3;i++)
   	{

   		for(j=0;j<2;j++)
   			printf("%3d",b[i][j]);
   		printf("\n");
   	}	
	return 0;
}

8.求方阵下三角元素之和。

#include <stdio.h>
#include <math.h>
int main()
{  
   	int a[3][3],i,j,sum=0;
   	for(i=0;i<3;i++)
   		for(j=0;j<3;j++)
   			scanf("%d",&a[i][j]);


   	for(i=0;i<3;i++)
   	{

   		for(j=0;j<3;j++)
   			printf("%3d",a[i][j]);
   		printf("\n");
   	}
	for(i=0;i<3;i++)
   		for(j=0;j<3;j++) 
		   if(i>=j)sum+=a[i][j];
	printf("sum=%d\n",sum); 	
	return 0;
}

9.打印以下六行杨辉三角。

#include <stdio.h>
#include <math.h>
int main()
{  
   	int a[6][6],i,j;
	for(i=0;i<6;i++)
	{
		a[i][0]=1;
		a[i][i]=1;
	 } 
	for(i=2;i<6;i++)
		for(j=1;j<i;j++)
			a[i][j]=a[i-1][j-1]+a[i-1][j] ;
	for(i=0;i<6;i++)
	{

		for(j=0;j<=i;j++)
			printf("%5d",a[i][j]);
		printf("\n");

	}
	return 0;
}

二、总结

如果对您有帮助,别忘了关注博主~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yali2388

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

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

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

打赏作者

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

抵扣说明:

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

余额充值