帮忙解决一下这个程序设计题,用C++写.谢谢

2025-04-07 20:33:56
推荐回答(2个)
回答1:

#include

char * copy(char *a, int m, int n)
{
static char tmp[255];
strncpy(tmp, a+m, n);
return tmp;
}

int main()
{
char a[255];
int m, n;
printf("输入字符串:\n");
gets(a);
printf("输入m n:\n");
scanf("%d %d", &m, &n);
puts(copy(a, m, n));
return 0;
}

#include
#include
#define N 20
main()
{
int dx=0,xx=0,sz=0,qt=0;
char a[N]="";
char *p;
gets(a);
puts(a);
p=a;
while(*p!='\0')
{
if(*p>='a'&&*p<='z')
xx++;
else if(*p>='A'&&*p<='Z')
dx++;
else if(*p>='0'&&*p<='9')
sz++;
else
qt++;
p++;//这里

}
printf("大写字母:%d,\n小写字母:%d,\n数字:%d,\n其他:%d\n",dx,xx,sz,qt);
}

回答2:

你的问题有点乱.我的理解是这样子的:
将输入的数组进行从小到大的排序,假为N个元素,那么,取前N/2+1个元素的值,分别取其值的1/2+1来求和.
这样翻译一下,是不是会觉得很容易呢?