将一个int型数据逆序
#include <stdio.h>
int main(int argc, char *argv[])
{
int num = 0;
int sum = 0;
printf("请输入一个整数\n");
scanf("%d",&num);
while(num!=0)
{
sum = sum*10 + num%10;
num /=10;
}
printf("%d\n",sum);
return 0;
}
将一个字符串插入到另一个字符串指定位置
#include<stdio.h>
#include<string.h>
void insert_string(char *buf,char *str,int n)
{
char src[128]="";
int i=0,j=0,k=0;
int len1 = strlen(buf);
int len2 = strlen(str);
for(i=0,j=0;i<n-1;i++,j++) //将要插入的str前面的字符串放入src中
{
src[j]=buf[i];
}
while(str[k]!=0)
{
src[j]=str[k];
k++;
j++;
}
while(buf[i]!=0)
{
src[j]=buf[i];
i++;
j++;
}
src[j]='\0';
printf("%s\n",src);
}
int main(int argc,char *argv[])
{
char *p=NULL;
char buf[128]="";
char str[128]="";
int n = 0;
printf("请输入第一个字符串\n");
fgets(buf,sizeof(buf),stdin);
buf[strlen(buf)-1]='\0';
printf("请输入第一个字符串\n");
fgets(str,sizeof(str),stdin);
str[strlen(str)-1]='\0';
printf("请输入您要插入的位置\n");
scanf("%d",&n);
insert_string(buf,str,n);
return 0;
}
选择法排序1
#include<stdio.h>//选择法排序
int main(int argc,char *argv[])
{
int arr[10]={0};
int i=0,j=0,min=0,tmp=0;
int n = sizeof(arr)/sizeof(arr[0]);
printf("请输入%d个数\n",n);
for(i = 0;i<n;i++)
{
scanf("%d",arr+i);
}
for(i = 0;i<n-1;i++)
{
for(min = i,j=min+1;j<n;j++)
{
if(arr[min]>arr[j])
{
min = j;
}
}
if(i != j)
{
tmp = arr[i];
arr[i]=arr[min];
arr[min]=tmp;
}
}
for(i = 0;i<n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
选择法排序2
#include<stdio.h>
int main()
{
int arr[10]={0};
int i=0,j=0,min=0,tmp=0;
int n = sizeof(arr)/sizeof(arr[0]);
printf("请输入%d个数\n",n);
for(i = 0;i<n;i++)
{
scanf("%d",arr+i);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(arr[i]>arr[j])
{
tmp = arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
for(i = 0;i<n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
冒泡法排序
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
int n = 0;
int i=0,j=0;
int *arr = NULL;
printf("请输入数据的个数:");
scanf("%d", &n);
//根据元素的个数申请空间
arr = (int *)calloc(n,sizeof(int));
if(NULL == arr)
{
perror("calloc");
return;
}
//键盘给动态数组 获取输入
printf("请输入%d个int数据\n", n);
for(i=0;i<n;i++)
{
scanf("%d", arr+i);//arr+i 第i个元素的地址
}
//排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(arr[j]>arr[j+1])//从小--->大
{
int tmp = 0;
tmp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
//数组的遍历
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
printf("\n");
//释放空间
if(arr != NULL)
{
free(arr);
arr=NULL;
}
}