已有一个已排序好的数组,今输入一个数,要求按原来排序的规律将它插入数组中

1.已有一个已排序好的数组,今输入一个数,要求按原来排序的规律将它插入数组中

2.打印出以下的杨辉三角(要求打印出10行)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
: : :

3.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、数字、空格、以及其它字符的个数。

4.编一程序,将两字符串链接起来,不要用strcat函数。
各位帮帮忙,十一周就要考试了,来不及了啊
运行环境是Turbo C2.0

第1个回答  推荐于2017-09-30
你们上那来了,我们上到第九章<<对象生灭>>是钱能的红皮书.这一看就是C++问题.你不能一抄了得,要好好想想别人是怎么作的.你COPY是别人的,看懂了就是自己的了.已经有人作出了我就不做了.我在楼上的基础上修改了一下.全部编译成功.
/***********************
第一个问题(插入排序):
***********************/
#include<iostream>
using namespace std;
void insert(int val,int* array,int* len)
//val为要插入的数,array为已排序的数组(假设为升序),len为数组元素个数。
{
int count,i;
i=*len;
for(count=0;count<i;count++)
{
if(val<=array[count]) break;
}
do
{
array[i+1]=array[i];
i--;
}while(i>=count);
array[count]=val;
//插入后将数组长度增加一
}
void main()
{
int b;
int array[10]={1,2,3,4,5,6,8,9};
b=sizeof(array);
insert(7,array,&b); //随便填
for(int i=0;i<10;i++)
cout<<array[i]<<endl;
}
/***********************
第二个问题(杨辉三角):
***********************/

#include <stdio.h>
int main()
{
int arr[2][11], n, i, j;

n=10;
for (i=0; i<=10; i++)
arr[0][i] = arr[1][i] = 0;
arr[0][1] = 1;
for (i=1; i<=n; i++)
{
for (j=1; j<=i; j++)
arr[i%2][j] = arr[(i-1)%2][j-1]+arr[(i-1)%2][j];
for (j=1; j<=i; j++)
printf("%-4d", arr[i%2][j]);
printf("\n");
}
printf("\n");
return 0;
}
/***********************
第3个问题(计算字符):
***********************/

#include<stdio.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i,j,c,upper,lower,digit,space,punch;
char str[3][80];
upper=lower=digit=space=punch=0;
for(i=0;i<3;i++)
{
gets(str[i]);
for(j=0;j<10;j++)
{
c=str[i][j];

if(isupper(c)!=0)
{
upper++;
}

if(islower(c)!=0)
{
lower++;
}

if(isdigit(c)!=0)
{
digit++;
}

if(isspace(c)!=0)
{
space++;
}

if(ispunct(c)!=0)
{
punch++;
}
}
}
printf(" upper%d\n lower%d\n digit%d\n space%d\n punch%d\n",upper,lower,digit,space,punch);

}

第四个问题
#include<iostream>
#include<string>
using namespace std;

void main()
{
string s1="adssadf",s2="12312";
cout<<s1+s2<<endl;

}本回答被提问者采纳
第2个回答  2007-04-06
连用什么语言都没有说怎么帮啊,我就一下思路。
1.如果是升序排列,那么就从第一个开始找,找到比输入的数字大的以后,就把输入的数字放到它前面,降序类似。
2.用归纳法归纳出数学公式,书本上就有,然后打印吧
3.不用想麻烦了,字符也是一种整型数,你分别找到他们代表的数字统计一下就可以了,c的树上多得是
4.如果是c,先把指针指到第一个字符串的最后,然后一个一个字符的去读第二个字符串的字符放到后面,指针加一
第3个回答  2007-04-06
/***********************
第一个问题(插入排序):
***********************/
insert(int val,int* array,int* len)
//val为要插入的数,array为已排序的数组(假设为升序),len为数组元素个数。
{
int count,i;
i=*len;
for(count=0;count<i;count++)
{
if(val<array[count]) break;
}
do
{
array[i+1]=array[i];
i--;
}while(i>=count);
array[count]=val;
(*len)++; //插入后将数组长度增加一
}

/***********************
第二个问题(杨辉三角):
***********************/

#include <stdio.h>
int main()
{
int arr[2][11], n, i, j;

n=10;
for (i=0; i<=10; i++)
arr[0][i] = arr[1][i] = 0;
arr[0][1] = 1;
for (i=1; i<=n; i++)
{
for (j=1; j<=i; j++)
arr[i%2][j] = arr[(i-1)%2][j-1]+arr[(i-1)%2][j];
for (j=1; j<=i; j++)
printf("%-4d", arr[i%2][j]);
printf("\n");
}
printf("\n");
return 0;
}
/***********************
第3个问题(计算字符):
***********************/

#include<stdio.h>
#include<string.h>
#include<ctype.h>
void main()
{
int i,j,c,upper,lower,digit,space,punch;
char str[3][80];
upper=lower=digit=space=punch=0;
for(i=0;i<3;i++)
{
gets(str[i]);
for(j=0;j<10;j++)
{
c=str[i][j];

if(isupper(c)!=0)
{
upper++;
}

if(islower(c)!=0)
{
lower++;
}

if(isdigit(c)!=0)
{
digit++;
}

if(isspace(c)!=0)
{
space++;
}

if(ispunct(c)!=0)
{
punch++;
}
}
}
printf(" upper%d\n lower%d\n digit%d\n space%d\n punch%d\n",upper,lower,digit,space,punch);

}
/***********************
第4个问题(连接字符串):
***********************/
char *connect(char *dst,const char *src){
char * cp = dst;
while( *cp != '\0' )
{
*cp++;
}
while(*src !='\0')
{
*cp = *src++;
*cp++;
}
return( dst );

}
第4个回答  2007-04-11
我来帮你应付哈,不过你老是这样可不行啊,以后万一到了要用真本事的时候你杂个整,你还可以来这里求人么?本事还是学在自己身上好,呵呵!!

/* ★★★★★★★★★一★★★★★★★★★ */

#include <stdio.h>

int main()
{
int a[10] = {0,1,2,3,4,6,7,8,9};
int insert;
int i, j, size = sizeof a/sizeof a[0];

printf("Please input the number to be inserted: ");
scanf("%d", &insert);

i = 0;
while(a[i] < insert)++i;

j = size - 1;
while(j != i)
a[j] = a[j-- -1];

a[i] = insert;

for(i = 0; i < size; ++i)
{
printf("%d ", a[i]);
}
}

/* ★★★★★★★★★二★★★★★★★★★ */

#include <stdio.h>

#define N 10

int main()
{
int yhTrag[N][N] = {0};
int i, j;

for(i = 0; i < N; ++i)
{
yhTrag[i][0] = 1;
printf("%d ", yhTrag[i][0]);

for(j = 1; j <= i; ++j)
{
yhTrag[i][j] = yhTrag[i-1][j-1] + yhTrag[i-1][j];
printf("%d ", yhTrag[i][j]);
}
printf("\n");
}
}

/* ★★★★★★★★★三★★★★★★★★★ */

#include <stdio.h>
#include <ctype.h>

int main()
{
int uppers = 0;
int digits = 0;
int spaces = 0;
int others = 0;
char c;

FILE *fp;
fp = fopen("text.txt", "r"); /* 自己改 */

while(!feof(fp))
{
c = fgetc(fp);
putchar(c);

if(isupper(c))
++uppers;
else if(isdigit(c))
++digits;
else if(isspace(c))
++spaces;
else
++others;
}

fclose(fp);

printf("\n%5cStatistic%5c\n", ' ', ' ');
printf("uppers: %d\n", uppers);
printf("digits: %d\n", digits);
printf("spaces: %d\n", spaces);
printf("others: %d\n", others);
}

/* ★★★★★★★★★四★★★★★★★★★ */

#include <stdio.h>

char* strcat(char* dest, int size, char* souc)
{
char* p = dest;
while(*p != '\0')++p;

while((p != dest + size - 1) && *souc != '\0')
{
*p++ = *souc++;
}
return dest;
}

int main()
{
char a[13] = {"Hello, "};

strcat(a, 13, "world!");
printf("%s", a);
}
第5个回答  2007-04-06
我的回答是用java语言
public class work
{
public static void main(String[] args)
{
String text ="I";
System.out.println(text + "Love you");
}
}
这也是一个程序啊!

参考资料:java

相似回答