第五章 数组

/实验5-7 查找整数/

/*实验5-7  查找整数*/
#include<stdio.h>
int main()
{
	int i,x,n;
	int a[10];
	printf("输入数组元素个数:");
	scanf("%d",&n);
	printf("输入%d个整数:",n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	printf("输入x:");
	scanf("%d",&x);
	for(i=0;i<n;i++)
		if(a[i]!=x)break;
		if(i!=n)
			printf("找不到与x相同的元素\n");
		else
			printf("%d\n",i);
		return 0;
}

/实验5-8 字符串字母大小写转换/

/*实验5-8  字符串字母大小写转换*/
#include<stdio.h>
int main()
{
	char ch;
	do
	{    
		ch=getchar();    
		if(ch<='z'&&ch>='a')
		{      
      printf("%c",ch-32);    
		}
		else if(ch<='Z'&&ch>='A')
		{      
			printf("%c",ch+32);    
		}
		else if(ch=='#')
		{      
			printf("\n"); 
		}
		else
		{      
			printf("%c",ch);   
		}      
	}
	while(ch!='#');    
	return 0;
} 

/实验5-9 找出不是两个数组共有的元素/

/*实验5-9  找出不是两个数组共有的元素*/
#include<stdio.h>
int main()
{
	int a[20], b[20], c[20];
	int m, n, i, j, k=0;
	scanf("%d", &m);
	for(i=0; i<m; i++)
		scanf("%d", &a[i]);
	scanf("%d", &n);
	for(i=0; i<n; i++)
		scanf("%d", &b[i]);
	for(i=0; i<m; i++)
	{
		for(j=0; j<n; j++)
		{
			if(a[i]==b[j])
				break;
		}
		if(j>=n)
		{
			c[k]=a[i];
			k++;
		}
	}
	for(i=0; i<n; i++)
	{
		for(j=0; j<m; j++)
		{
			if(b[i]==a[j])
				break;
		}
		if(j>=m)
		{
			c[k]=b[i];
			k++;
		}
	}
	printf("%d", c[0]);
	for(i=1; i<k; i++)
	{
		for(j=0; j<i; j++)
		{
			if(c[i]==c[j])
				break;
		}
		if(j>=i)
			printf(" %d", c[i]);
	}
	return 0;	
}


/实验5-10,求一系列整数中出现最多的数字/

/*实验5-10,求一系列整数中出现最多的数字*/
#include<stdio.h>
int main()
{
	int a[10]={0},n,i,j,num,max=0;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&num);
		while(num)
		{
			a[num%10]++;
			num/=10;
		}
	}
	for(i=0;i<10;i++)
		if(max<a[i])
			max=a[i];
	printf("%d:",max);
	for(i=0;i<10;i++)
		if(max==a[i])
			printf(" %d\n",i);	
	return 0;
} 

/实验5-11 将字符串转换成十进制整数/


/*实验5-11 将字符串转换成十进制整数*/

#include<stdio.h>
int main()
{
	int i=0;
	char str[80];
	printf("Enter a string:");
	while((str[i]=getchar())!='#')
		i++;
	str[i]='\0';
	
	i=0;
	char newstr[80];
	int k=0,flag=0;
	if(str[i]=='-')
	{
		newstr[k++]=str[i++];
		flag=1;				//负数 
	}
	for( ;str[i]!='\0';i++)
	{
		if((str[i]>='0'&&str[i]<='9')||(str[i]>='A'&&str[i]<='F')||(str[i]>='a'&&str[i]<='f'))
		{
			newstr[k++]=str[i];
		}
	}
	newstr[k]='\0';
	printf("New string:");
	for(i=0;newstr[i]!='\0';i++)
		putchar(newstr[i]);
	printf("\n");
	
	long num=0;
	i=0;
	
	if(flag)
		i++;
	for( ;newstr[i]!='\0';i++)
	{
		if(newstr[i]>='0'&&newstr[i]<='9')
			num=num*16+newstr[i]-'0';
		else if(newstr[i]>='A'&&newstr[i]<='F')
			num=num*16+newstr[i]-'A'+10;
		else if(newstr[i]>='a'&&newstr[i]<='f')
			num=num*16+newstr[i]-'a'+10;
	}
	if(flag)
		num=-num;
	printf("Number=%ld\n",num);
	
	return 0;
} 

/实验5–12,求矩阵的局部极大值/

/*实验5--12,求矩阵的局部极大值*/

#include <stdio.h>
#define N 20

int main()
{
	int i, j, m, n, flag = -1;
	int a[N][N];
	scanf("%d%d",&m,&n);
 
	for (i = 0; i<m; i++)  
	{
		for (j = 0; j<n; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	for (i = 1; i<m-1; i++) 
	{
		for (j = 1; j<n-1; j++)
		{
			if (a[i][j] > a[i - 1][j] && a[i][j] > a[i + 1][j] && a[i][j] > a[i][j - 1] && a[i][j] > a[i][j + 1])
			{
				printf("%d %d %d\n", a[i][j], i+1, j+1);
				flag = 1; 
			}
		}
	}
	if (flag == -1) 
	{
		printf("没有局部最大值 %d %d\n",m,n);
	}
	return 0;
}

/实验5-13求整数序列中出现次数最多的数/

/*实验5-13求整数序列中出现次数最多的数*/

#include<stdio.h>
#define N 1000
int main()
{
	int i, j, n;
	int a[N];
	int b[N] = {0};
	int max;
	int index = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
	}
	for (i = 0; i < n; i++) 
	{
		for (j = 0; j < n; j++)
		{
			if (a[i] == a[j])
			{
				b[i]++;
			}
		}
	}
	max = b[0];
	for (i = 1; i < n; i++)
	{
		if (max < b[i])
		{
			max = b[i];
			index = i;
		}
	}
	printf("num=%d count=%d\n",a[index], max);
	return 0;
}

/实验5-14 猴子选大王/

/*实验5-14 猴子选大王*/
#include<stdio.h>
#define MAX 1005
int main(void){
    int monkey[MAX]={0};
    int n,temp=0;
    int monkeyOut=0;
    int count = 0;
	int i=1;
    scanf("%d",&n);
    do{
        temp++;
        if(temp>n)
            temp=1;
        if(!monkey[temp])
            count++;
        else
            continue;
        if(count==3)
		{
            count=0;
            monkey[temp]=1;
            monkeyOut++;
        }
    }
	while((monkeyOut+1)!=n);
    for(i=1;i<=n;++i)
	{
        if(!monkey[i])
		{
            printf("%d\n",i);
            break;
		}
    }
    return 0;
}

/实验5-18,螺旋方阵/

/*实验5-18,螺旋方阵*/

#include <stdio.h>
#define MaxLen 10
void fun(int a[MaxLen][MaxLen],int n)
{
	int i,j,k=0,m;
	if (n%2==0)   
		m=n/2;
	else
		m=n/2+1;
	for (i=0;i<m;i++)
	{
		for (j=i;j<n-i;j++)
		{
			k++;
			a[i][j]=k;
		}
		for (j=i+1;j<n-i;j++)
		{
			k++;
			a[j][n-i-1]=k;
		}
		for (j=n-i-2;j>=i;j--)
		{
			k++;
			a[n-i-1][j]=k;
		}
		for (j=n-i-2;j>=i+1;j--)
		{
			k++;
			a[j][i]=k;
		}
	}
}
int main()
{
	int n,i,j;
	int a[MaxLen][MaxLen];
	printf("输入n(n<10):");
	scanf("%d",&n);
    fun(a,n);
	printf("%d阶数字方阵如下:\n",n);
	for (i=0;i<n;i++)
	{
		for (j=0;j<n;j++)
			printf("%4d",a[i][j]);
		printf("\n");
	}
	return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值