1.有三个字符串,找出其中最大的
字符串1:Holland
字符串2:China
字符串3:America
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[3][20];
int i;
for(i=0;i<3;i++){
gets(str[i]);
}
char string[20];
if(strcmp(str[0],str[1])>=0) strcpy(string,str[0]);
else strcpy(string,str[1]);
if(strcmp(str[2],string)>=0) strcpy(string,str[2]);
printf("%s\n",string);
return 0;
}
输出结果:
2.题目描述:
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
代码1:
#include <stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<n;){
if(n%i==0) {
printf("%d ",i);
n/=i;
}
else i++;
}
printf("%d\n",n);
return 0;
}
思路:要想确保因子是质数,就要从2开始遍历,直到n不能除为止,这时候再加一,由于题目中的i是小于n的,而n在一直变小,所以最后还剩下一个n,故另外输出n;
代码2:
#include <stdio.h>
int Prime(int n){
int i,a;
a=0;
for(i=2;i<n;i++){
if(n%i==0){
a++;
break;
}
}
if(a==0) return 1;
else return 0;
}
int main()
{
int n,i;
scanf("%d",&n);
while(n>1){
for(i=2;i<=n;i++){
if(n%i==0&&Prime(i)){
printf("%d ",i);
n/=i;
break;
}
}
}
printf("\n");
return 0;
}
思路:
用函数方法解决质因数,虽然两种方法不同,但大致思路是一样的。