C语言高手进

2025-02-26 07:09:34
推荐回答(5个)
回答1:

已经修改了
现在可以了
按照你的要求

/////////第一个题目
#include "stdio.h"
void findthenum(int m,int k)
{
int x,y,count=0,sum=0;

for(x=m+1;;x++)
{
for(y=2;y {
if(x%y==0)
break;
}
if(y==x)
{
count++;
printf("%d\t",x);
sum+=x;
if(count==k)
break;
}
}
printf("\n素数之和:%d\n",sum);
}

void main()
{
/*
(1) 编写函数,该函数的功能是将大于整数m且紧靠m的k个素数存入数组中,并返回满足条件的素数之和;
(2)在main函数中,由键盘输入 m 和 k 值;
(3)在main函数中输出结果,按一行输出5个数的格式输出素数。
例如:键盘上输入m和k为17和5,则输出素数:19, 23, 29, 31, 37以及素数之和139。

*/
int m,k;
printf("请输入m和k值\n");
scanf(" %d %d",&m,&k);
findthenum(m,k);

}
////////////////////////
//////////////////////
/////////////////////
//////////////////////////

//第二个题目
#include "stdio.h"
#include "string.h"
void fun(char *p)
{
unsigned int x,y,index;
char temp;

for(x=0;x {
for(y=x+1,temp=p[x],index=x;y {
if(p[y] {
temp=p[y];
index=y;
}
}
p[index]=p[x];
p[x]=temp;
}
for(x=0;x {
if((p[x]>='A' && p[x]<='Z') || (p[x]>='a' && p[x]<='z'))
printf("%c",p[x]);
}
for(x=0;x {
if(!((p[x]>='A' && p[x]<='Z') || (p[x]>='a' && p[x]<='z')))
printf("%c",p[x]);
}
}
void main()
{
/*
(1)编写函数 void fun(char *p),实现程序功能;
(2)在main函数中,由键盘输入一个字符串。
(3)在main函数中,输出移动后的字符串。
例如:键盘上输入:***C##b@A##a@B***,则输出结果:ABCab####******@@。

*/
char s[1024];
printf("请输入字符串\n");
scanf("%s",s);
fun(s);

}

回答2:

好麻烦额...

不过感觉利用字符在机器内部的编码顺序来做循环应该可以实现吧..

回答3:

第一题:
#include
#include
#include
#define MAX 20
int jprime(int n)//判断素数
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)return 0;
return 1;
}
int cprim(int m,int k,int a[MAX])
{
int i=m,sum=0,t=0;
while(t!=k)
{
i++;
if(jprime(i)){a[t]=i;t++;sum+=i;}
}
return sum;
}
int main()
{
int a[MAX],m,k,sum;
cout<<"输入m值;"< cin>>m;
cout<<"输入k值:"< cin>>k;
cout<<"大于"< sum=cprim(m,k,a);
for(int i=0;i {
cout< if((i+1)%5==0)cout< }
cout< cout<<"和为:"< cout<return 0;
}

//在我的编译器可以通过,最大k是20,你可以把它改大点

回答4:

我也想知道

回答5:

高级程序,