step1 . day6 C语言基础练习之数组和字符串
今天復習之數組即字符串相關知識,貼幾個小練習,體會一下數組細節知識點:
1.冒泡排序
#include <stdio.h>
#define N 10
int main(int argc, const char *argv[])
{
int i,j;
int arr[N],tep;
printf("please input 10 numbers:\n");
for(i=0 ; i<N ; i++){
printf("arr[%d]:",i);
scanf("%d",&arr[i]);
}
printf("arr is :");
for(i=0 ; i<N; i++){
printf("%d ",arr[i]);
}
printf("\n");
for(i=0;i<N-1;i++){
for(j=0;j<N-i-1;j++){
if(arr[j]>arr[j+1])
{
tep = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tep;
}
}
}
printf("sort arr is:");
for(i=0 ; i<N; i++){
printf("%d ",arr[i]);
}
printf("\n");
return 0;
}
2.選擇排序(不使用中間變量交換)
#include <stdio.h>
#define N 10
int main(int argc, const char *argv[])
{
int i,j;
int index;
int arr[N];
printf("please input 10 numbers:\n");
for(i=0 ; i<N ; i++){
printf("arr[%d]:",i);
scanf("%d",&arr[i]);
}
printf("arr is :");
for(i=0 ; i<N; i++)
printf("%d ",arr[i]);
printf("\n");
for(i=0;i<N;i++){
index = i;
for(j=i+1;j<N;j++){
if(arr[index]>arr[j])
index = j;
}
if(index != i){
arr[i] += arr[index];
arr[index] = arr[i] - arr[index];
arr[i] = arr[i]- arr[index];
}
}
printf("sort arr is:");
for(i=0 ; i<N; i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
3.復寫strcpy strcmp strcat strlen(提前預習一下函數和使用指針的函數傳參)
#include <stdio.h>
#include <string.h>
#define N 50
int lenth(char *src)
{
int i=0;
while(src[i] != '\0')
i++;
return i;
}
void cpy(char *dest,char *src){
int i = 0;
while(src[i] != '\0'){
dest[i] = src[i];
i++;
}
dest[i] = '\0';
printf("copy completely! dest is :%s\n",dest);
}
void cat(char *dest,char *src){
int i = 0,j = 0;
int k;
while(src[i] != '\0')
i++;
while(dest[j] != '\0')
j++;
for(k=0;k<i;k++)
dest[j+k] = src[k];
dest[j+k] = '\0';
printf("cat completely! dest is :%s\n",dest);
}
int compare(char *dest,char *src){
int i =lenth(src);
for(i = 0;i<lenth(src);i++)
if(src[i] > dest[i])
return -1;
else if(src[i] < dest[i])
return 1;
else
continue;
return 0;
}
int main(int argc, const char *argv[])
{
char src[20];
char dest[N];
printf("please input a src str:");
// scanf("%s",src);//無法如數空格符
gets(src);
printf("please input a dest str:");
//scanf("%s",dest);
gets(dest);
// printf("cmp result:%d\n",compare(dest,src));
// printf("compare函數驗證:%d\n",strcmp(dest,src));
// cpy(dest,src);
// printf("驗證cp函數n:%s\n",strcpy(dest,src));
//
// printf("src的字符長度是:%d\n",lenth(src));
// printf("驗證lenth函數:%d\n",strlen(src));
// cat(dest,src);
printf("cat函數驗證:%s\n",strcat(dest,src));
return 0;
}
轉載于:https://www.cnblogs.com/huiji12321/p/11123381.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的step1 . day6 C语言基础练习之数组和字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DQL
- 下一篇: 安卓逆向入门教程(一)