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();
}