色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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

    文章

    7614

    瀏覽量

    137436
  • 函數
    +關注

    關注

    3

    文章

    4345

    瀏覽量

    62882
  • 數組
    +關注

    關注

    1

    文章

    417

    瀏覽量

    26003
收藏 人收藏

    評論

    相關推薦

    C語言數組詳解

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

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

    具有全方位距離檢測功能,具有全方位距離顯示功能 能夠智能找出距離最短的能力
    發表于 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 ?1335次閱讀

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

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

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

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

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

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

    C語言_結構體總結

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

    C語言_鏈表總結

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

    C語言-數組

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

    C語言如何創建數組

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

    c語言數組怎么定義

    C語言中,數組是一種用來存儲相同類型元素的數據結構。它可以存儲多個元素,并通過一個共同的名稱來引用這些元素。數組是一種很重要的數據結構,可以用于解決很多實際的問題。 在
    的頭像 發表于 11-24 10:11 ?3220次閱讀
    主站蜘蛛池模板: 忘忧草在线社区WWW日本-韩国 | 一区二区不卡在线视频 | 国产一区二区三区四区五在线观看 | 欧美xxxxb| 20岁中国男同志china1069 20岁αsrian男同志免费 | 色婷婷综合激情中文在线 | 一区三区不卡高清影视 | 99国内精品| 美女被爽cao免费漫画 | 国产啪视频在线播放观看 | 别插我B嗯啊视频免费 | 亚洲大片免费观看 | 国产亚洲精品久久久久久久软件 | 侮辱丰满美丽的人妻 | 午夜阳光影院在线观看视频 | 在线观看视频中文字幕 | 芭乐草莓樱桃丝瓜18岁大全 | 老色69久久九九精品高潮 | 日本亚洲欧洲免费旡码 | 日本黄 色大片全 | 成人免费视频在线 | 曰本真人00XX动太图 | 国产精品涩涩涩视频网站 | 美女张开腿露出尿口扒开来摸动漫 | 美女脱了内裤张开腿让男人桶到爽 | 黄色三级视频在线观看 | 女性性纵欲派对 | 久久青青热 | 亚洲免费人成在线视频观看 | 无码国产成人777爽死在线观看 | 天天躁日日躁狠狠躁午夜剧场 | 精品国产自在现线拍国语 | 在线免费观看国产精品 | 高清国产激情视频在线观看 | 久热这里在线精品 | www.免费视频| 欧美乱妇狂野欧美在线视频 | 国产亚洲精品久久久无码狼牙套 | 帅哥男男GV在线1080P | 私密按摩师在线观看 百度网盘 | 伊人综合在线影院 |