第六章 数组


文章目录

 


前言

本文是关于学习c语言数组的基本题目练习

 

一、一维数组

1.输入6个数,找出其中最大的数

代码如下:

#include<stdio.h>
int main()
{
	int a[40],i,max;
	for(i=0;i<6;i++)
		scanf("%d",&a[i]);
	max=a[0];
	for(i=0;i<6;i++)
	if(a[i]>max)
		max=a[i];
	printf("%d",max);
	return 0;}

 注意:这里不能只用一个循环就能搞定,还是定义两个循环,第一个输入数组,第二个进行比较。

2.把N个数按从小到大的顺序(升序)排列(冒泡法)

代码如下:

#include<stdio.h>
#define N 5
int main(void)
{
	int a[N],i,j,t,m;
	printf("please input %d numbers:\n",N);
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
        /*排序开始*/
	for(i=0;i<N-1;i++)
		for(j=0;j<N-1-i;j++)
		{	if(a[j]>a[j+1])
			{t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;}
		}
		/*排序结束*/
		printf("the sorted numbers:\n");			
			for(m=0;m<N;m++)
			printf("%d ",a[m]);
			printf("\n");
		return 0;
}

运用宏定义,冒泡法进行排序

二、二维数组

1.矩阵转置

#include<stdio.h>
int main()
{ 
	int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			b[j][i]=a[i][j];
		for(j=0;j<3;j++)
		{	for(i=0;i<2;i++)
				printf("%d ",b[j][i]);
		printf("\n");}
			return 0;}

二维数组的赋值及输入输出,一般都要用二重循环

2.找出二维数组中的最大数及其所在位置

#include<stdio.h>
int main()
{
	int a[3][4],max,c,b,i,j;
	for(i=0;i<3;i++)
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
		max=a[0][0];
		c=0;
		b=0;
		for(i=0;i<3;i++)
			for(j=0;j<4;j++)
				if(a[i][j]>max)
				{max=a[i][j];
				c=i;
				b=j;}
				printf("\nmax: %d  row: %d col: %d\n",max,c,b);
				return 0;}

 注意:数组名不能和变量名重合,int a[3][4],a;这样就会出错

三、字符数组 

1.一维字符数组输入

#include<stdio.h>
int main()
{
	char a[30];int i;
	i=-1;
	do 
	{i++;
	scanf("%c",&a[i]);
	}while(a[i]!='\n');
	a[i]='\0';
	for(i=0;a[i]!='\0';i++)
		printf("%c",a[i]);
	printf("\n");
	return 0;}

 注意:循环结束的条件是a[i]!='\n',输入回车符则循环结束

#include<stdio.h>
int main()
{
	char s[30];
	scanf("%s",s);
	printf("%s\n",s);
	return 0;}

 遇到空格‘\0’输入结束

2.统计字符串中的字符总个数,字母个数以及数字个数

#include<stdio.h>
#include<string.h>
int main()
{
	char a[80];
	int i,t,l=0,d=0;
	gets(a);
	t=strlen(a);
	strlwr(a);
	for(i=0;a[i]!='\0';i++)
	{if(a[i]>='0'&&a[i]<='9')
	d++;
	else if(a[i]>='a'&&a[i]<='z')
		l++;}
	printf("total=%d,letter=%d,digit=%d\n",t,l,d);
	return 0;}

字符总和用的是strlen函数,将所有字母转换成小写字母用的是strlwr函数

3.查找人员是否为羊村人员

#include<stdio.h>
#include<string.h>
#define N 3
int main()
{
	char a[N][20]={"喜羊羊","美羊羊","懒羊羊"};
		char name[20];
	int i;
	gets(name);
	for(i=0;i<N;i++)
		if(strcmp(name,a[i])==0) break;
		if(i<N)
			printf("%s是羊村的\n",name);
		else
	        printf("%s不是羊村的\n",name);
		return 0;}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值