数组有关练习

当日学习内容思维导图

练习1:提示并输入一个字符串,统计该字符串中的字母、数字、空格以及其他字符的个数

     1	#include<stdio.h>
     2	#include<string.h>
     3	int main(int argc, const char *argv[])
     4	{
     5		char str[100]="";
     6		int i,space=0,alphabet=0,num=0,other=0;     //alphabet表示字符
     7		gets(str);
     8		for(i=0;i<strlen(str);i++)
     9		{
    10			if(str[i]>='a'&&str[i]<='z' || str[i]>='A'&&str[i]<='Z')
    11			{
    12				alphabet++;    //字母个数
    13			}
    14			else if(str[i]>='0' && str[i]<='9')
    15			{
    16				num++;         //数字个数
    17			}
    18			else if(str[i]==' ')
    19			{
    20				space++;       //空格个数
    21			}
    22			else
    23			{
    24				other++;          //其他个数
    25			}
    26		}
    27		printf("该字符串的字母为%d个,数字为%d个,空格为%d个,其他字符为%d个\n",alphabet,num,space,other);
    28		return 0;
    29		

练习2.提示并输入一个字符串,求出该字符串中所有数字的总和

     1	#include<stdio.h>
     2	#include<string.h>
     3	int main(int argc, const char *argv[])
     4	{
     5		char str[100]=" ";
     6		printf("请输入一个字符串:");
     7		gets(str);
     8		int i=0,sum=0;
     9		for(i=0;i<strlen(str);i++)
    10		{
    11			if(str[i]>='0' && str[i]<='9')
    12			{
    13	
    14				sum+=str[i]-'0';
    15			}
    16	
    17		}
    18		printf("该字符串中所有数字的总和为:%d\n",sum);
    19		return 0;
    20	}

练习3.定义一个4*3的二位整型数组,完成对二维数组的输入、输出。

并将该二维数组中每一行的最值放入到一个一维数组中,并对该一维数组进行升序排序后输出

     1	#include<stdio.h>
     2	#include<string.h>
     3	#define M 4
     4	#define N 3
     5	int main(int argc, const char *argv[])
     6	{
     7		int arr[M][N]={0};
     8		int MAX[M];
     9		int i,j,temp,max;
    10		for(i=0;i<M;i++)
    11		{
    12			for(j=0;j<N;j++)
    13			{
    14				printf("请输入第%d行,第%d列:",i+1,j+1);
    15				scanf("%d",&arr[i][j]); 
    16			}
    17		}                  //循环输入成绩
    18		for(i=0;i<M;i++)
    19		{
    20			max=arr[i][0];
    21			for(j=1;j<N;j++)
    22			{
    23				if(max<arr[i][j])
    24				{
    25					temp=max;
    26					max=arr[i][j];
    27					arr[i][j]=temp;
    28				}
    29			}
    30			MAX[i]=max;	
    31	
    32		}     //找出每一行中的最大值
    33	/*	for(i=0;i<M;i++)
    34		{
    35			printf("%d\t",MAX[i]); 
    36		}
    37		putchar(10); */  //验证是否输出每一行的最大值
    38		for(i=0;i<M;i++)
    39		{
    40			for(j=i+1;j<M;j++)
    41			{
    42				if(MAX[i]>MAX[j])
    43				{
    44					temp=MAX[i];
    45					MAX[i]=MAX[j];
    46					MAX[j]=temp;
    47				}
    48			}
    49		}                     //进行升序排序
    50		for(i=0;i<M;i++)
    51		{
    52			printf("%d\t",MAX[i]);
    53		}
    54		putchar(10);
    55	
    56		return 0;
    57	}

练习4、提示并输入两个一维整形数组,求这两个数组的交集

     1	#include<stdio.h>
     2	#include<string.h>
     3	int main(int argc, const char *argv[])
     4	{
     5		int num1[4]={0};
     6		int num2[4]={0};
     7		int i=0,j=0;
     8		for(i=0;i<4;i++)
     9		{
    10			printf("请输入num1数组第%d个数:",i+1);
    11			scanf("%d",&num1[i]);
    12		}
    13		for(i=0;i<4;i++)
    14		{
    15			printf("请输入num2数组第%d个数:",i+1);
    16			scanf("%d",&num2[i]);
    17		}
    18		for(i=0;i<4;i++)
    19		{
    20			for(j=0;j<4;j++)
    21			{
    22	    	if(num1[i]==num2[j])
    23			{
    24				printf("%d\t",num1[i]);
    25			}
    26			}
    27		}
    28		putchar(10);
    29		return 0;
    30	}

练习5、完成注册和登录功能:使用两个一维字符数组存储账户和密码

注册:完成对帐号和密码的输入

登录:见登录账号和密码和注册的账号和密码进行匹配,如果相等,则登录成功,否则登录失败。

     1	#include<stdio.h>
     2	#include<string.h>
     3	int main(int argc, const char *argv[])
     4	{
     5	
     6		char arr[100]="";   //注册账号
     7		char brr[100]="";   //注册密码
     8		char crr[100]="";   //登录账号
     9		char drr[100]="";   //登录密码
    10		int i=0,j=0;
    11		printf("请输入注册账号:");
    12		gets(arr);
    13		printf("请输入注册账号密码:");
    14		gets(brr);
    15		printf("登录账号:");
    16		gets(crr);
    17		printf("登录账号密码:");
    18		gets(drr);
    19		if(strcmp(arr,crr)==0&&strcmp(brr,drr)==0)
    20		{
    21			printf("登录成功\n");
    22		}
    23		else
    24		{
    25			printf("登录失败\n");
    26		}
    27		
    28		return 0;
    29	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值