是用c语言写还是c++写?
追问c语言 麻烦你了 帮忙写一下 谢谢啦 不要写的太难了 我新手 满意加悬赏
追答#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
#define MAXLEN 30
const int MINNUMBER = -32767 ;
void find_sec_max( int data[] , int count,int &max_index,int &sec_max_index)
{
int maxnumber = data[0] ;
int sec_max = MINNUMBER ;
for ( int i = 1 ; i < count ; i++)
{
if ( data[i] > maxnumber )
{
sec_max = maxnumber ;
sec_max_index = max_index;
maxnumber = data[i] ;
max_index = i;
}
else
{
if ( data[i] > sec_max )
{
sec_max = data[i] ;
sec_max_index = i;
}
}
}
}
int main()
{
char *str[N],temp[MAXLEN*2];
int len[N],max = 0,sec_max = -1;
printf("input ten string:\n");
for (int i=0;i<N;i++)
{
str[i] = (char*)malloc(sizeof(char)*MAXLEN);
gets(str[i]);
len[i] = strlen(str[i]);
}
find_sec_max(len,N,max,sec_max);
strcpy(temp,str[max]);
strcat(temp,str[sec_max]);
printf("%s\n",temp);
};
输出结果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/1f178a82b9014a90364e31aeab773912b31beeb5?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问额 我直接看不懂 能用简单的方法给写一下吗
追答具体是哪些地方看不懂?我给你加点注释吧,这个程序做起来代码量还是有点大的
追问不好意思 我是个新手 基本都看不懂 呜呜 没有简单的方法吗?
追答好的,我给你做个尽量简单的,在我贴出代码之前,你不用再追问了。另外,看看我给你做的另
一题,满意就先采纳了吧。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,j;
char str[10][30]={0},temp[30],Result[60];
printf("input ten string:\n");
for (i=0;i<10;i++)
gets(str[i]);//输入字符串
for (i=0;i<10;i++)//两个for循环对字符串进行冒泡排序(降序)
for (j=0;j<10-1;j++)
{
if (strcmp(str[j],str[j+1])<0)
{
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
}
strcpy(Result,str[0]);//降序排列,所以str[0]最大,str[0]次大
strcat(Result,str[1]);//次大字符串接在最大字符串后面
printf("%s\n",Result);
};
这个代码很简单了,时间专门为你干活了,输入方法见上面贴出来的那个黑框
别放我鸽子啊亲~
追问我运行了一下 不对呀 我给你加分
追答呵呵,不好意思啊,的确有问题,判断条件写错了,我上次测试的时候可能就测了一组条件
正好是对的就没管,代码改了就修改了一个地方:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,j;
char str[10][30]={0},temp[30],Result[60];
printf("input ten string:\n");
for (i=0;i<10;i++)
gets(str[i]);//输入字符串
for (i=0;i<10;i++)//两个for循环对字符串进行冒泡排序(降序)
for (j=0;j<10-1;j++)
{
if (strlen(str[j])<strlen(str[j+1]))//这里搞错了
{
strcpy(temp,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],temp);
}
}
strcpy(Result,str[0]);//降序排列,所以str[0]最大,str[0]次大
strcat(Result,str[1]);//次大字符串接在最大字符串后面
printf("%s\n",Result);
};