循环、数组的一些易错题

1.最大公约数与最小公倍数求解
(辗转相除法)
设两数分别为a,b。

  1. 比较a,b大小,较大数放在a中,较小数放在b中。
  2. 求a除b的商c与余数d。
  3. 如果d=0,则b是最大公约数;否则把b的值给a,d的值给b,返回第二步。
  4. 将a、b相乘除以最大公约数即为最小公倍数。
#include<stdio.h>
int main()
{
int a,b;
int t=0,c,m,n;
scanf("%d%d",&a,&b);
m=a*b;
if(a<b)
{
   t=a;
   a=b;
   b=t;
 }
while(a%b!=0)
{
	c=a%b;                                       
    a=b;
    b=c;
}
   n=m/c;
   printf("%d %d",c,n);
return 0;}

运行结果:
运行结果
2、求10个数中最大数所在的位置

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

在这里插入图片描述
注意:j最初要定义为1,而不是0.
3、给出一个3*3的矩阵,求出它的转置矩阵

#include<stdio.h>
int main()
{
	int a[3][3];
	int i,j;
	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("%d ",a[j][i]);
		}
	    printf("\n");
	}
	return 0;
}

在这里插入图片描述
*注意:输出a[j][i]时%d后要加空格,否则就会是以下情形:
在这里插入图片描述

4、求所给字符串中字母的个数,无论大小写。

#include<stdio.h>
int main()
{
	char a[80];
	int sum1=0,sum2=0,sum=0,i;
	gets(a);
	for(i=0;i<80;i++)
	{
		if(a[i]>=65&&a[i]<=90)
		{
			sum1++;
		}
		if(a[i]>=97&&a[i]<=122)
		{
			sum2++;
		}
	}
	sum=sum1+sum2;
	printf("%d",sum);
	return 0;
}

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值