3、计算字符串中含有不同字符串的个数
编写一个函数,计算字符串中含有不同的字符个数。字符串在ASCII码范围内(0~127,包括0和127),换行表示结束符,不算在字符里。不在范围内不做统计,多个相同的字符只计算一次,例如,对于字符串abaca而言,有a,b,c三种不同字符因此输出3。数据范围:1<=n<=500
输入描述
输入一行没有空格的字符串、
输出描述
输入字符串中范围在(0~127,包括0和127)字符的种数。
例如:输入:
输入:
abc
输出:
3
输出:
输入:
aaa
输出:
1
思路:
对于此算法中,需要能够辨别ASCII码在0~127范围内相同字符的个数,需要进行编码,当输入一串字符串后可以输出不同的字符串个数。
具体实现
`#include<stdio.h> int main(void) {
int i,j,count=0,x=0; //count代表字符的个数
char S[127];
printf("请输入一个字符串:") ;
scanf("%[^\n]",S);//^\n代表第一个字符是非换行符的所有字符
for(i=0;S[i]!='\0';i++)//\0代表字符串为空
{
count++;
}
for(i=0;i<count;i++)
{
for(j=i+1;j<count;j++)
{
if(S[i]==S[j])
{
x++;//x代表相同字符个数
break;
}
}
}
printf("该字符串中不同字符个数为:%d",count-x);
return 0;
} `
4、从键盘输入两个字符m和n,判断m和n的最小公倍数。
思路:
通过算法设计,可以实现输出结果自行输入,并能够计算出m和n的最小公倍数然后进行输出。
具体实现:
`#include <stdio.h> int main () {
int n,m;
printf("输入m:");
scanf("%d",&m);
printf("输入n:");
scanf("%d",&n);
int mul=m*n;
if (m<n)
{
int tmp;
tmp=m;
m=n;
n=tmp;//将最大数给m
}
while(m%n)
{
int tmp;
tmp=m%n;
m=n;
n=tmp;
}
printf("最小公倍数为:%d",mul/n);
return 0;
}//本代码是先计算出两个数字的最大公因数,根据两数之积除以最大公因数得到最小公倍数 `