那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言總結(jié)_數(shù)組全方位練習(xí)

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

C語言數(shù)組的練習(xí)題:涉及到數(shù)組插入、數(shù)組刪除、數(shù)組下標(biāo)數(shù)據(jù)的左移右移、數(shù)組排序、數(shù)組排序優(yōu)化、數(shù)組的數(shù)據(jù)拼接等等。

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

1. 數(shù)組基本知識

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

#include 
int main(int argc,char **argv)
{
	int int_data[100]={12,34,56,78};    //整型數(shù)組
	char char_data[]={'A','B','C'};     //字符數(shù)組
	char str1_data[]={'A','B','C','\0'}; //字符串?dāng)?shù)組
	char str2_data[]="ABC";//字符串?dāng)?shù)組
	
	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;
}
字符串?dāng)?shù)組特性: 結(jié)尾有’\0’

2. 數(shù)組相關(guān)的題目(分析)

2.1 數(shù)組的數(shù)據(jù)插入

 int a[]={1,2,3,4,5,6,7};  在第2位數(shù)據(jù)后插入一個(gè)888
   結(jié)果: 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. 向后移動數(shù)據(jù),空出位置*/
	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; //插入的數(shù)據(jù)
	
	/*3. 最終效果*/
	for(i=0;i<10;i++)printf("%d ",data[i]);
	printf("\n");
	
	return 0;
}

2.2 數(shù)組數(shù)據(jù)的刪除

 int a[]={1,2,3,4,2,6,7};   將第2位數(shù)據(jù)刪除掉
結(jié)果: 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. 向前移動,將數(shù)據(jù)覆蓋掉*/
	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 變量排序

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

排序: 計(jì)算平均數(shù)。班級成績、溫度數(shù)據(jù)…

例子: 從鍵盤上隨機(jī)輸入3個(gè)數(shù),將3個(gè)數(shù)按照從大到小的順序輸出。

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

2.4 數(shù)組冒泡排序

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

分析:

/*
data[]={1,2,3}
第一輪: [0]和[1]  [1]和[2]  2 3 1   每一輪保證最小的數(shù)在最后
第二輪: [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 冒泡排序優(yōu)化

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

分析:

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

2.6 數(shù)組數(shù)據(jù)的拼接(整數(shù))

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

示例代碼:

#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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137712
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62970
  • 數(shù)組
    +關(guān)注

    關(guān)注

    1

    文章

    417

    瀏覽量

    26028
收藏 人收藏

    評論

    相關(guān)推薦

    C語言數(shù)組詳解

    介紹C語言數(shù)組的知識點(diǎn)。
    的頭像 發(fā)表于 05-19 10:15 ?6396次閱讀

    全方位距離雷達(dá)動態(tài)檢測系統(tǒng)的設(shè)計(jì)怎么設(shè)計(jì)

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

    C語言學(xué)習(xí)數(shù)組的筆記

    C語言學(xué)習(xí)數(shù)組的筆記
    發(fā)表于 12-17 16:04 ?0次下載

    簡單實(shí)用——C語言入門程序練習(xí)

    C語言入門程序練習(xí),簡單實(shí)用
    發(fā)表于 04-04 10:14 ?31次下載

    C語言入門教學(xué)之數(shù)組資料總結(jié)免費(fèi)下載

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

    C語言程序設(shè)計(jì)教程之數(shù)組使用練習(xí)和文件和輸入輸出的資料概述

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

    C語言總結(jié)_數(shù)組知識

    當(dāng)前文章復(fù)盤C語言數(shù)組數(shù)組定義規(guī)則、數(shù)組空間類型、數(shù)組下標(biāo)使用、
    的頭像 發(fā)表于 08-14 09:38 ?1348次閱讀

    C語言總結(jié)_字符串全方位練習(xí)

    C語言字符串全方位練習(xí),涉及知識點(diǎn):字符串解析、大小寫判斷、字符串插入、字符串刪除、字符串排序、字符串轉(zhuǎn)整數(shù)、字符串轉(zhuǎn)浮點(diǎn)數(shù)、時(shí)間轉(zhuǎn)換、GPS數(shù)據(jù)解析等等。
    的頭像 發(fā)表于 08-14 09:41 ?1560次閱讀

    C語言_語句與位運(yùn)算基本練習(xí)

    總結(jié)C語言語句的幾個(gè)基本練習(xí)題,計(jì)算素?cái)?shù)、排序、求偶數(shù)和、可逆素?cái)?shù)、水仙花數(shù)、交換大小寫、交換變量的值、位運(yùn)算、語法特性等知識點(diǎn)。
    的頭像 發(fā)表于 08-14 09:46 ?1072次閱讀

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

    這篇文章主要是總結(jié)C語言的位運(yùn)算幾個(gè)實(shí)戰(zhàn)例子,接著介紹數(shù)組的基本定義用法、數(shù)組排序、插入、拼接、刪除、字符串查找替換等。
    的頭像 發(fā)表于 08-14 09:48 ?2623次閱讀

    C語言_結(jié)構(gòu)體總結(jié)

    當(dāng)前文章介紹動態(tài)堆空間內(nèi)存分配與釋放,C語言結(jié)構(gòu)體定義、初始化、賦值、結(jié)構(gòu)體數(shù)組、結(jié)構(gòu)體指針的相關(guān)知識點(diǎn),最后通過一個(gè)學(xué)生管理系統(tǒng)綜合練習(xí)結(jié)構(gòu)體數(shù)組
    的頭像 發(fā)表于 08-14 09:52 ?1170次閱讀

    C語言_鏈表總結(jié)

    本篇文章介紹C語言鏈表相關(guān)知識點(diǎn),涉及鏈表的創(chuàng)建、單向鏈表、循環(huán)鏈表、雙向鏈表、單向循環(huán)鏈表,鏈表常見問題總結(jié)等,還列出了結(jié)構(gòu)體數(shù)組與鏈表的練習(xí)
    的頭像 發(fā)表于 08-14 09:53 ?1831次閱讀

    C語言-數(shù)組

    C語言數(shù)組是一個(gè)同類型數(shù)據(jù)的集合,主要用來存儲一堆同類型的數(shù)據(jù)。
    的頭像 發(fā)表于 08-14 09:59 ?1335次閱讀

    C語言如何創(chuàng)建數(shù)組

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

    c語言數(shù)組怎么定義

    C語言中,數(shù)組是一種用來存儲相同類型元素的數(shù)據(jù)結(jié)構(gòu)。它可以存儲多個(gè)元素,并通過一個(gè)共同的名稱來引用這些元素。數(shù)組是一種很重要的數(shù)據(jù)結(jié)構(gòu),可以用于解決很多實(shí)際的問題。 在
    的頭像 發(fā)表于 11-24 10:11 ?3271次閱讀
    百家乐赢钱皇冠网| 晋城| 金榜百家乐现金网| 真人百家乐官网是骗局| 威尼斯人娱乐老| 豪享博百家乐官网的玩法技巧和规则| 维多利亚娱乐| 买百家乐程序| 玩百家乐官网出千方法| 云顶国际娱乐| 路虎百家乐的玩法技巧和规则| 狮威百家乐官网赌场娱乐网规则 | 澳门百家乐路子分析| 百家乐官网冲动| 易发娱乐| 金牌百家乐的玩法技巧和规则 | 澳门百家乐官网娱乐城网址| 太阳城娱乐城下载| 山西百家乐用品| 大众百家乐官网的玩法技巧和规则 | 百家乐澳门路规则算法| 娱乐网百家乐官网补丁| 缅甸百家乐官网网站| 凯旋门百家乐现金网| 百家乐官网平台是最好的娱乐城 | 真钱百家乐官网赌博| 大发888娱乐城888 bg| 七胜百家乐娱乐网| 罗盘的 24卦位| 最新百家乐官网网评测排名| 新沂市| 德州扑克计算器| 免水百家乐的玩法技巧和规则 | 百家乐视频下载地址| 235棋牌游戏| 百家乐下注技巧| 百家乐真人娱乐城陈小春| 百家乐官网平玩法这样| 百家乐官网作弊知识| 百家乐试玩| 丹东亿酷棋牌世界官方下载|