一、作业
1.求一维数组中的第二大值
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int arr[]={13,67,2,89,24};
int i,j,t;
int len=sizeof(arr)/sizeof(int);
printf("原数组是");
for(i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
putchar(10);
for(i=1;i<len;i++)
{
for(j=0;j<len-i;j++)
{
if(arr[j]>arr[j+1])
{
t=arr[j+1];
arr[j+1]=arr[j];
arr[j]=t;
}
}
}
printf("数值种第二大值是%d\n",arr[len-2]);
return 0;
}
终端运行结果:
linux@linux:~/zuoye230711/xiaozuoye$ gcc 10.c -o 10.out
linux@linux:~/zuoye230711/xiaozuoye$ ./10.out
原数组是13 67 2 89 24
数值种第二大值是67
2.终端输入带空格的字符串,删除字符中的空格
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i,j;
char str[100]="abxdefg";
gets(str);
for(i=0;i<strlen(str);i++)
{
if(str[i]==' '){
for(j=i;j<strlen(str);j++){
str[j]=str[j+1];
}
}
}
puts(str);
return 0;
}
终端运行结果:
linux@linux:~/zuoye230711/xiaozuoye$ gcc 11.c -o 11.out
11.c: In function ‘main’:
11.c:8:2: warning: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]
8 | gets(str);
| ^~~~
| fgets
/usr/bin/ld: /tmp/ccniI2au.o: in function `main':
11.c:(.text+0xa7): 警告: the `gets' function is dangerous and should not be used.
linux@linux:~/zuoye230711/xiaozuoye$ ./11.out
qwqwe ab1113 123aaa
qwqweab1113123aaa
备注:使用gets();会有友好警告,不是出错了。
3.自己实现剩余的string函数族函数,strcat、strcpy、strcmp
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define arrlen 6
int main(int argc, const char *argv[])
{
char arr1[]="hello";
char arr2[]="world";
char arr3[10]="11";
strcpy(arr3,arr1);
strcat(arr3,arr2);
//int len=sizeof(arr)/sizeof(int);
int len;
puts(arr1);
puts(arr2);
puts(arr3);
printf("%d\n",strcmp(arr1,arr3));
return 0;
}
终端运行结果:
linux@linux:~/zuoye230711/xiaozuoye$ gcc 9.c -o 9.out
linux@linux:~/zuoye230711/xiaozuoye$ ./9.out
hello
world
helloworld
-119
4.终端输入10个学生成绩,使用冒泡排序对学生成绩从低到高排序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int arr[10]={};
int i,j,t;
for(i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
int len=sizeof(arr)/sizeof(int);
for(i=1;i<len;i++)
{
for(j=0;j<len-i;j++)
{
if(arr[j]>arr[j+1])
{
t=arr[j+1];
arr[j+1]=arr[j];
arr[j]=t;
}
}
}
for(j=0;j<len;j++)
printf("%d ",arr[j]);
putchar(10);
return 0;
}
终端运行结果:
linux@linux:~/zuoye230711/xiaozuoye$ gcc 12.c -o 12.out
linux@linux:~/zuoye230711/xiaozuoye$ ./12.out
90 99 100 95 89 77 60 69 88 99
60 69 77 88 89 90 95 99 99 100