色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言總結_數組全方位練習

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:34 ? 次閱讀

C語言數組的練習題:涉及到數組插入、數組刪除、數組下標數據的左移右移、數組排序、數組排序優化、數組的數據拼接等等。

(1)函數基本使用: 函數基本定義、封裝、傳參、調用、局部變量、全局變量、只讀變量、靜態變量
(2)數組基本使用: 數組基本定義、使用賦值、字符串。

1. 數組基本知識

1. 概念:  同一個類型的集合。
2. 定義:  int data[100];  //數組data里可以存放100個int類型
     100必須是常量(C89)。定義數組時,如果沒有賦初始值[]一定要填大小。
     int data[]={1};
3.數組賦值: 只有在定義的使用才可以整體賦值。int data[10]={12,34,56,7,89};
4.數組下標[]訪問從0開始。  比如:  buff[100];  下標范圍: 0~99
5.數組的名稱就是首地址。int buff[100];
1.2 字符串數組
1. 字符串錄入:  scanf(“%s”);  gets()  fgets
2. 頭文件: string.h
3. 從鍵盤錄入字符串的方法 
scanf("%s",str); //從鍵盤上錄入字符串,字符串結尾: '\0'
gets(str);       //從鍵盤上錄入字符串
fgets(str,100,stdin); //從鍵盤上錄入字符串 (標準輸入)

#include 
int main(int argc,char **argv)
{
	int int_data[100]={12,34,56,78};    //整型數組
	char char_data[]={'A','B','C'};     //字符數組
	char str1_data[]={'A','B','C','\0'}; //字符串數組
	char str2_data[]="ABC";//字符串數組
	
	printf("char_data=%d\n",sizeof(char_data)); //3
	printf("str1_data=%d\n",sizeof(str1_data)); //4
	printf("str2_data=%d\n",sizeof(str2_data)); //4
	return 0;
}
字符串數組特性: 結尾有’\0’

2. 數組相關的題目(分析)

2.1 數組的數據插入

 int a[]={1,2,3,4,5,6,7};  在第2位數據后插入一個888
   結果: 1,2,888,3,4,5,6,7
#include 
int main(int argc,char **argv)
{
	int data[10]={1,2,3,4,5,6,7,8,9};
	//1,2,3,4,4,5,6,7,8,9
	int addr;
	int i;
	printf("輸入插入的位置:");
	scanf("%d",&addr);
	
	/*1. 向后移動數據,空出位置*/
	for(i=8;i>=addr;i--)
	{
		data[i+1]=data[i];
	}
	
	/*2. 查看移動之后的效果*/
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	
	data[addr]=888; //插入的數據
	
	/*3. 最終效果*/
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	
	return 0;
}

2.2 數組數據的刪除

 int a[]={1,2,3,4,2,6,7};   將第2位數據刪除掉
結果: 1,3,4,5,6,7
示例:
#include 
int main(int argc,char **argv)
{
	int data[10]={1,2,3,4,5,6,7,8,9,10};
	//1,2,4,5,6,7,8,9,10,10
	int addr;
	int i;
	printf("輸入刪除的位置:");
	scanf("%d",&addr); //2

	/*1. 向前移動,將數據覆蓋掉*/
	for(i=addr-1;i<10-1;i++)
	{
		data[i]=data[i+1];
	}
	
	/*2. 查看移動之后的效果*/
	for(i=0;i<9;i++)printf("%d ",data[i]);
	printf("\n");
	
	return 0;
}

2.3 變量排序

數組數據排序。從鍵盤上輸入一串數據(整數),從大到小排序,再輸出。
int a[]={12,67,45,13,1,5}; 排序之后: 67,45,13,12,5,1

排序: 計算平均數。班級成績、溫度數據…

例子: 從鍵盤上隨機輸入3個數,將3個數按照從大到小的順序輸出。

#include 
int main(int argc,char **argv)
{
	int a,b,c;
	int tmp; //存放臨時數據
	printf("請輸入3個數:");
	scanf("%d%d%d",&a,&b,&c); //以回車作為結束符號,以空格作為間隔符號
	printf("源數據:%d,%d,%d\n",a,b,c);
	
	//從大到小
	if(a)>

2.4 數組冒泡排序

#include 
int main(int argc,char **argv)
{
	int data[10];
	int tmp; //存放臨時數據
	int i,j;
	int cnt=0; //排序比較的總次數
	
	/*1. 錄入數據*/
	printf("請輸入10個數:");
	for(i=0;i<10;i++)scanf("%d",&data[i]);
	/*2. 打印源數據:*/
	printf("源數據:");
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	/*3. 冒泡排序*/
	for(i=0;i<10-1;i++) //比較輪數
	{
		for(j=0;j<10-1-i;j++) //每一輪比較的次數
		{
			if(data[j]>data[j+1]) //從小到大
			{
				tmp=data[j];
				data[j]=data[j+1];
				data[j+1]=tmp;
			}
			cnt++; 
		}
	}
	
	/*4. 打印結果數據:*/
	printf("排序之后的數據:");
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	
	printf("排序的總次數:%d\n",cnt);
	return 0;
}

分析:

/*
data[]={1,2,3}
第一輪: [0]和[1]  [1]和[2]  2 3 1   每一輪保證最小的數在最后
第二輪: [0]和[1]  3 2 1
*/

排序: 從大到小
1 2 3 4 5 
第一輪:
(1) 2 1 3 4 5
(2) 2 3 1 4 5
(3) 2 3 4 1 5
(4) 2 3 4 5 1   
   
第二輪:
(1) 3 2 4 5 1
(2) 3 4 2 5 1
(3) 3 4 5 2 1
(4) 3 4 5 2 1

第三輪:
(1) 4 3 5 2 1
(2) 4 5 3 2 1
(3) 4 5 3 2 1
(4) 4 5 3 2 1

第四輪:
(1) 5 4 3 2 1
(2) 5 4 3 2 1
(3) 5 4 3 2 1
(4) 5 4 3 2 1

2.5 冒泡排序優化

#include 
int main(int argc,char **argv)
{
	int data[10];
	int tmp; //存放臨時數據
	int i,j;
	int cnt=0; //排序比較的總次數  45:
	int flag=0; //標志位置
	
	/*1. 錄入數據*/
	printf("請輸入10個數:");
	for(i=0;i<10;i++)scanf("%d",&data[i]);
	/*2. 打印源數據:*/
	printf("源數據:");
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	/*3. 冒泡排序*/
	for(i=0;i<10-1;i++) //比較輪數
	{
		for(j=0;j<10-1-i;j++) //每一輪比較的次數
		{
			if(data[j]>data[j+1]) //從小到大
			{
				tmp=data[j];
				data[j]=data[j+1];
				data[j+1]=tmp;
				flag=1;
			}
			cnt++; 
		}
		if(flag==0) //不需要繼續排序
		{
			break; //跳出最外層循環
		}
		flag=0; //清除標志位,方便第2次判斷
	}
	
	/*4. 打印結果數據:*/
	printf("排序之后的數據:");
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	
	printf("排序的總次數:%d\n",cnt);
	return 0;
}

分析:

data[]={1,2,3}
第一輪: [0]和[1]  [1]和[2]  2 3 1   每一輪保證最小的數在最后
第二輪: [0]和[1]  3 2 1

2.6 數組數據的拼接(整數)

 int a[]={1,3,4,5,6,7};   int b[]={11,13,14,15,16,17};
將a和b拼接到c數組里。 最終int c[]={1,3,4,5,6,7, 11,13,14,15,16,17}
 必須保證c數組空間足夠大。

示例代碼:

#include 
int main(int argc,char **argv)
{
	int src_data[10]={1,2,3,4,5};
	int new_data[]={6,7,8,9}; //
	int i;
	for(i=0;i

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    25939
收藏 人收藏

    評論

    相關推薦

    C語言數組詳解

    介紹C語言數組的知識點。
    的頭像 發表于 05-19 10:15 ?6307次閱讀

    全方位距離雷達動態檢測系統的設計怎么設計

    具有全方位距離檢測功能,具有全方位距離顯示功能 能夠智能找出距離最短的能力
    發表于 03-06 15:26

    C語言學習數組的筆記

    C語言學習數組的筆記
    發表于 12-17 16:04 ?0次下載

    簡單實用——C語言入門程序練習

    C語言入門程序練習,簡單實用
    發表于 04-04 10:14 ?31次下載

    C語言入門教學之數組資料總結免費下載

    本文檔的主要內容詳細介紹的是C語言入門教學之數組資料總結免費下載主要內容包括了:1 一維數組的定義和一維
    發表于 10-23 17:53 ?5次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>入門教學之<b class='flag-5'>數組</b>資料<b class='flag-5'>總結</b>免費下載

    C語言程序設計教程之數組使用練習和文件和輸入輸出的資料概述

    本文檔的主要內容詳細介紹的是C語言程序設計教程之數組使用練習和文件和輸入輸出的資料概述。
    發表于 11-16 17:47 ?5次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設計教程之<b class='flag-5'>數組</b>使用<b class='flag-5'>練習</b>和文件和輸入輸出的資料概述

    C語言總結_數組知識

    當前文章復盤C語言數組數組定義規則、數組空間類型、數組下標使用、
    的頭像 發表于 08-14 09:38 ?1301次閱讀

    C語言總結_字符串全方位練習

    C語言字符串全方位練習,涉及知識點:字符串解析、大小寫判斷、字符串插入、字符串刪除、字符串排序、字符串轉整數、字符串轉浮點數、時間轉換、GPS數據解析等等。
    的頭像 發表于 08-14 09:41 ?1486次閱讀

    C語言_語句與位運算基本練習

    總結C語言語句的幾個基本練習題,計算素數、排序、求偶數和、可逆素數、水仙花數、交換大小寫、交換變量的值、位運算、語法特性等知識點。
    的頭像 發表于 08-14 09:46 ?1001次閱讀

    C語言_數組的查找、替換、排序、拼接

    這篇文章主要是總結C語言的位運算幾個實戰例子,接著介紹數組的基本定義用法、數組排序、插入、拼接、刪除、字符串查找替換等。
    的頭像 發表于 08-14 09:48 ?2570次閱讀

    C語言_結構體總結

    當前文章介紹動態堆空間內存分配與釋放,C語言結構體定義、初始化、賦值、結構體數組、結構體指針的相關知識點,最后通過一個學生管理系統綜合練習結構體數組
    的頭像 發表于 08-14 09:52 ?1120次閱讀

    C語言_鏈表總結

    本篇文章介紹C語言鏈表相關知識點,涉及鏈表的創建、單向鏈表、循環鏈表、雙向鏈表、單向循環鏈表,鏈表常見問題總結等,還列出了結構體數組與鏈表的練習
    的頭像 發表于 08-14 09:53 ?1778次閱讀

    C語言-數組

    C語言數組是一個同類型數據的集合,主要用來存儲一堆同類型的數據。
    的頭像 發表于 08-14 09:59 ?1287次閱讀

    C語言如何創建數組

    C語言是一種非常強大和靈活的編程語言,它提供了若干數據類型來存儲和操作數據。其中之一就是數組,它可以用來存儲一系列具有相同數據類型的元素。本文將詳細介紹如何在
    的頭像 發表于 11-24 10:08 ?1894次閱讀

    c語言數組怎么定義

    C語言中,數組是一種用來存儲相同類型元素的數據結構。它可以存儲多個元素,并通過一個共同的名稱來引用這些元素。數組是一種很重要的數據結構,可以用于解決很多實際的問題。 在
    的頭像 發表于 11-24 10:11 ?3056次閱讀
    主站蜘蛛池模板: 色呦呦导航| 欧美xxxav| 久久天天婷婷五月俺也去| 黄色三级视频在线| 国产午夜电影在线观看不卡| 狠狠色香婷婷久久亚洲精品| 精品丰满人妻无套内射| 粉嫩自拍 偷拍 亚洲| 在教室伦流澡到高潮HNP视频 | rio 快播| 高清日本片免费观看| 国产三级电影网| 久久精品一本到东京热| 女人高潮特级毛片| 手机在线免费看毛片| 亚洲精品自在在线观看| 永久免费精品影视网站| 最新无码二区日本专区| 久久精品国产色蜜蜜麻豆国语版 | 小xav导航| 伦理片在线线手机版韩国免费6| 久欠热视频精品首页| 欧美 亚洲 日韩 在线综合| 美女屁股软件| 色久悠悠无码偷拍自怕| 日韩大胆视频| 午夜福利影院私人爽爽| 一个人HD高清在线观看免费视频| 99精品在线免费| 国产精品一区二区在线播放| 久久热在线视频精品店| 日韩综合网| 在线成年av动漫电影| 搞基福利社| 快播理论片| 校花爽好大快深点h| 97久久超碰中文字幕| 国产精品亚洲在钱视频| 蜜桃色欲AV久久无码精品| 无限资源在线观看8| 99爱在线精品视频免费观看9|