急求助c++题目,输出一维数组中值为素数的元素\字符串逆序

1.设计程序,将键盘输入的字符串逆序。具体要求如下: (1)设计函数f实现字符串的逆序。 char* f(char *s); // 将指针s所指字符数组逆序后返回 (2)在主函数中定义一个字符数组,用来存储键盘输入的字符串;然后调用f函数,输出逆序后的字符串。 2.设计程序输出一维数组中值为素数的元素,具体要求如下: (1)定义函数bool prime(int n),判断整数n是否为素数。 bool prime(int n); // n是素数返回真,否则返回假 (2)定义函数print按每行5个元素的方式输出一维数组中值为素数的元素。 void print(int *p ,int n); /*指针p传递一维数组,n传递一维数组元素个数*/ (3)在主函数中定义一维数组,并初始化,通过调用上述函数实现程序功能。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632


#include <iostream>
#include <cmath>
using namespace std;
bool prime(int n)
{
    if(n<2)
        return false;
    int i;
    for(i=2;i<=sqrt((float)n);i++)
        if(n%i==0)
            return false;
    return true;
}
 


void print(int *p,int n)
{
    int i,count=0;
    for(i=0;i<n;i++)
        if(prime(p[i])){
            cout<<p[i]<<'\t';
            count++;
            if(count%5==0)
                cout<<endl;
        }
        cout<<endl;
}
int main()
{
    int a[20]={5,9,7,3,1,8,0,11,-6,10,19,21,23,29,35,-3,39,-48,24,17};
    cout<<"数组中的素数元素有 :"<<endl;
    print(a,20);
    system("pause");
    return 0;

}

void f( char *p ) { int n=0; for(int i=0;p[i]!='\0';i++) { n++; } char ch; for(int i=0,j=n-1;i

1和2的代码用了1个main函数,如有需要拆分,自己拆一下吧,代码如下:


#include <stdio.h>
#include <string>
//1.字符串逆序
char* f(char*s)
{
	int len = strlen(s);
	int haf = len/2;
	for (int i = 0; i < haf; i++)
	{
		char c = s[i];
		s[i] = s[len -1 - i];
		s[len -1 - i] = c;
	}
	return s;
}

//2.判断素数
bool prime(int n)
{
	for (int i = 2; i< n-1; i++)
	{
		if (n % i == 0)
		{
			return false;
		}
	}
	return true;
}

//素数输出
void print(int* a,int n)
{
	int cnt = 0;
	for ( int i = 0; i < n;i++)
	{
		if (prime(a[i]))
		{
			cnt++;
			printf("%d ",a[i]);
			if (cnt == 5)
			{
				printf("\n");
				cnt = 0;
			}
		}
	}
}
void main()
{
	char buf[20] = {0};

	printf("请输入字符串:");
	gets(buf);

	char* p = f(buf);
	printf("逆序字符串:%s\n",p);


	//打印素数
	int a[100];
	for (int i = 0; i < 100; i++)
	{
		a[i] = i+2;
	}
	printf("打印素数:\n");
	print(a,100);

	getchar();
}