1、求一维数组中的第二大值
{
int arr[20]={8,2,15,48,26};
int i,j,temp,second;
for(i=1; i<5; i++)
{
for(j=0; j<5-i; j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printf("second=%d\n",arr[3]);
return 0;
}
int main(int argc, const char *argv[])
{
int arr[]={12,34,56,25,66};
int i,second,max=arr[0];
int len=sizeof(arr)/sizeof(arr[0]);
for(i=0; i<len; i++)
{
if(arr[i]>max)
{
max=arr[i];
}
if(arr[i]!=max)
{
second=arr[i];
}
}
for(i=0; i<len; i++)
{
if(arr[i]!=max && arr[i]>second)
{
second=arr[i];
}
}
printf("最大值为%d 第二大值为%d\n",max,second);
return 0;
}
2、终端输入带空格的字符串,删除字符中的空格
{
char str[50]="";
gets(str);
int i,j;
while(str[i]!='\0')
{
if(str[i]!=' ')
{
str[j]=str[i];
j++;
}
i++;
}
str[j]=str[i];
puts(str);
return 0;
}
3、自己实现剩余的string函数族函数,strcat、strcpy、strcmp
strcpy
{
char arr[]="hello";
char arr1[]="world";
int i,j;
for(i=0; i<5; i++)
{
if(arr1[i]!=0)
{
arr[i]=arr1[i];
}else{
arr[i]=0;
}
}
puts(arr);
return 0;
}
strcat
{
char str[50]="abcdefg";
char str1[]="ijklmn";
int i=0,j=0;
while(str[i])
{
i++;
}
while(str1[j])
{
str[i]=str1[j];
i++;
j++;
}
str[i]=str1[j];
puts(str);
return 0;
}
strcmp
{
char str[50]="woainizhongguo";
char str1[]="woaini168";
int i=0;
while(str[i]==str1[i] && str[i]!='\0')
{
i++;
}
printf("%d\n",str[i]-str1[i]);
return 0;
}
4、整理思维导图
5、终端输入10个学生成绩,使用冒泡排序对学生成绩从低到高排序
{
int arr[50]={0};
int i,j,temp;
printf("请输入10个学生的成绩:");
for(i=0; i<10; i++)
{
scanf("%d",&arr[i]);
}
for(i=1; i<10; i++)
{
for(j=0; j<10-i; j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(i=0; i<10; i++)
{
printf("%d ",arr[i]);
}
return 0;
}