1. (程序题)
题目编号:Exp05-Basic01,GJBook3-07-06
题目名称:字符串长度
题目描述:编写程序实现:使用自编函数int strlen(char *str),求字符串str长度;并在主程序中调用。
输入:从键盘随机输入长度不超过256的字符串,字符串内可能包含若干空白字符。
输出:字符串的长度。
#include<stdio.h>
int strlen(char *skr)
{
int i;
while(skr[i]!='\0')
{
i++;
}
return i;
}
int main()
{
char a[300];
gets(a);
int res=strlen(a);
printf("%d",res);
return 0;
}
3. (程序题)
题目编号:Exp05-Basic03,GJBook3例-07-01
题目名称:排序二维数组
题目描述:编写程序对输入的二维整型矩阵进行递增排序。
输入:第一行输入两个正整数n和m (n, m<=50)分别对应矩阵的行数和列数。随后n行,每行输入m个整数,每个整数间以空格间隔。
输出:排序后的矩阵:共n行,每行m个整数,之间以一个西文空格间隔,每行最后一个数字后除必要的回车换行符无其它字符,最后一行末尾无任何多余字符。
#include<stdio.h>
void maopao(int* str,int t)
{
int flag=1,r,i;
while(flag)
{
flag=0;
for(i=0;i<t-1;i++)
{
if(str[i]>str[i+1])
{
r=str[i];
str[i]=str[i+1];
str[i+1]=r;
flag=1;
}
}
}
}
int main()
{
int m,n,i,j;
scanf("%d %d",&n,&m);
int a[m*n];
for(i=0;i<m*n;i++)
{
scanf("%d",&a[i]);
}
maopao(a,m*n);
for(i=0;i<n*m;i++)
{
if((i+1)%m==1) printf("%d",a[i]);
else printf(" %d",a[i]);
if((i+1)%m==0&&(i+1)!=m*n) printf("\n");
}
return 0;
}
4. (程序题)
题目编号 :Exp05-Basic04,GJBook3-07-11
题目名称:字符串部分删除
题目描述:
编写程序实现:使用自编函数char * str_delete(char *s, int v, int w)从字符串s的第v个字符开始删除w个字符,并将处理后的字符串首地址以函数返回值带回调用点。
输入:
第一行输入两个整数分别对应
v和w(0≤v, w<MIN(256,strlen(s))),测试数据已保证v和w符合要求;
第二行输入一个长度不超过256的字符串,字符串可能含有空格。
#include<stdio.h>
#include<string.h>
char * str_delete(char *s, int v, int w)
{
int i,cou;
cou=strlen(s);
for(i=v-1;i<cou;i++)
{
s[i]=s[i+w];
}
s[cou-w+1]='\0';
return s;
}
int main()
{
int v,w;
scanf("%d %d\n",&v,&w);
char a[300];
gets(a);
str_delete(a,v,w);
printf("%s",a);
return 0;
}