跪求C语言高手解答!
1.从键盘任意输入三个串,求其中最大的串和最长的串。2.求100以内所有素数的和。
第二题 找到100以内的素数(这个程序很多),然后相加。
第2题
#include<stdio.h>#include<math.h>
int main()
{
int i,j,k,n=0,sum=0;
for(j=2;j<=100;j++)
{
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
break;
if(i>=k+1)
{
printf(" %d",j);
n++;
sum+=j;
}
if(n%10==0)
printf("\n");
}
printf(" 和为%d",sum);
} C王之王果然好人啊!orz
for(i=2;i<=100;i++)
建议改成for(i=3;i<=100;i+=2)
节约是一种美德.
:)
回复 4# himpo 的帖子
你说的那个我想过 可是那样的话就少了个最小的质数2那就这样改吧
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,n=0,sum=0;
printf("2");
for(j=3;j<=100;j+=2)
{
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
break;
if(i>=k+1)
{
printf(" %d",j);
n++;
sum+=j;
}
if(n%10==0)
printf("\n");
}
printf(" 和为%d",sum);
}
第1题
我写的这个程序只能在3个串都不相同时候起作用 其他功能都可以不知道你要不要
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,n=0,sum=0;
printf("2");
for(j=3;j<=100;j+=2)
{
k=sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
break;
if(i>=k+1)
{
printf(" %d",j);
n++;
sum+=j;
}
if(n%10==0)
printf("\n");
}
printf(" 和为%d",sum);
}
第2题
。。。不好意思 上面那个发错了 ,这个才是#include<stdio.h>
#include <string.h>
int main()
{
char s1[300],s2[300],s3[300];
int a,b,c,d,e,f;
printf("请输入第一个字符串\n");
gets(s1);
printf("请输入第二个字符串\n");
gets(s2);
printf("请输入三个字符串\n");
gets(s3);
a=strcmp(s1,s2);b=strcmp(s1,s3);c=strcmp(s2,s3);
if(a==1&&b==1)
printf("%s为最大字符串\n",s1);
if(a==-1&&c==1)
printf("%s为最大字符串\n",s2);
if(b==-1&&c==-1)
printf("%s为最大字符串\n",s3);
d=strlen(s1);e=strlen(s2);f=strlen(s3);
if(d>e&&d>f)
printf("%s为最长字符串\n",s1);
if(e>d&&e>f)
printf("%s为最长字符串\n",s2);
if(f>d&&f>e)
printf("%s为最长字符串\n",s3);
} 太伟大了!
页:
[1]
