1.求一维数组中的第二大值
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 5
int main(int argc, const char *argv[])
{
int s[N];
printf("请输入5个数:");
int i=0,j=0,t=0;
for(i=0;i<N;i++){
scanf("%d",&s[i]);
}
for(i=0;i<N-1;i++){
for(j=0;j<N-1-i;j++){
if(s[j]>s[j+1]){
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
printf("第二大值为%d\n",s[N-2]);
return 0;
}
2.终端输入带空格的字符串,删除字符中的空格
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 128
int main(int argc, const char *argv[])
{
char s[N];
printf("请输入一个带空格的字符串:");
gets(s);
int i=0,j=0,k=' ';
B:
while(s[i]){
j=i;
if(s[i]==k){
A:
s[i]=s[i+1];
i++;
if(s[i+1])
goto A;
s[i]=s[i+1];
}
i=j;
i++;
}
for(i=0;i<N;i++){
if(s[i]==k)
goto B;
}
printf("最后无空格输出为:%s\n",s);
return 0;
}
3.自己实现剩余的string函数族函数,strcat、strcpy、strcmp
strcat
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 10
int main(int argc, const char *argv[])
{
char s[32]="holle world";
char s1[32]="hqyj yjh";
printf("s=%s s1=%s\n",s,s1);
int i=0,j=0;
while(s[i])
i++;
while(s[j]){
s[i]=s1[j];
i++;
j++;
}
s[i]=s1[j];
printf("s=%s s1=%s\n",s,s1);
return 0;
}
strcpy
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 10
int main(int argc, const char *argv[])
{
char s[32]="holle world";
char s1[32]="hqyj yjh";
printf("s=%s s1=%s\n",s,s1);
int i=0;
while(s[i]){
s[i]=s1[i];
i++;
}
s[i]=s1[i];
printf("s=%s s1=%s\n",s,s1);
return 0;
}
strcmp
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 10
int main(int argc, const char *argv[])
{
char s[128]={0};
char s1[128]={0};
printf("请输入第一个字符串:");
gets(s);
printf("请输入第一个字符串:");
gets(s1);
int i=0,ret=0;
while(s[i]){
if(s[i]==s1[i]){
ret=0;
i++;
}
if(s[i]!=s1[i]){
ret=s[i]-s1[i];
break;
}
}
printf("%d\n",ret);
return 0;
}
4.整理思维导图
5.终端输入10个学生成绩,使用冒泡排序对学生成绩从低到高排序
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 10
int main(int argc, const char *argv[])
{
int s[N];
printf("请输入10个成绩:");
int i=0,j=0,t=0;
for(i=0;i<N;i++){
scanf("%d",&s[i]);
}
for(i=0;i<N-1;i++){
for(j=0;j<N-1-i;j++){
if(s[j]>s[j+1]){
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
for(i=0;i<N;i++)
printf("%d\n",s[i]);
return 0;
}