C语言数组和函数实例练习(一)
C语言的数组和函数部分的知识,在语法上和Java语法是有所相似的,这里只通过实例总结一些自己感觉需要理解的部分知识。
1.数组
数组中的元素具有相同的数据类型;数组一旦创建,不能被改变;数组中元素在内存中是连续依次存在的;使用时需要随时注意下标越界的问题。
例1:输入数量不确定的[0,9]范围内的整数,统计每个数字出现的次数,输入-1时结束程序。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int num[]={};
scanf("%d",&i);
while(i!=-){
if(i>=&&i<=){
num[i]++;
}
scanf("%d",&i);
}
for(i=;i<;i++)
{
printf("%d出现了%d次\n",i,num[i]);
}
return ;
}
例2:在一组给定的数据中,找出某个数据是否存在。
#include <stdio.h>
#include <stdlib.h>
int search(int key,int a[],int length)
{
int ret=-;
int i;
for(i=;i<length;i++)
{
if(a[i]==key)
{
ret=i;
break;
}
}
return ret;
}
int main()
{
int a[]={,,,,,,,,,};
int x;
int loc;
printf("请输入一个数字:");
scanf("%d",&x);
loc=search(x,a,);
if(loc!=-)
{
printf("%d在第%d个位置上。\n",x,loc);
}else{
printf("%d不存在!");
}
return ;
}
二维数组:int a[i][j];//i行j列的数组
例3:将一个二维数组行和列的元素互换,存到另一个二维数组中。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[][]={{,,},{,,}};
int b[][],i,j;
printf("array a:\n");
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
return ;
}
2.函数
C语言中的函数和Java中的方法是一个道理的,都是一段实现某种功能的代码块,也都要注意返回值、形参实参等。
***注意:若函数有返回值,必须使用带值的return。
C语言在调用函数时,永远只能传值给函数,不能传变量。
C语言不允许函数嵌套定义。
例1:求1-10,20-30,45-60三个区间数字的总和。
#include <stdio.h>
#include <stdlib.h>
int sum(int a,int b)
{
int i;
int sum;
for(i=a;i<=b;i++)
{
sum=sum+i;
}
return sum;
}
int main()
{
int x,y,z,result;
x=sum(,);
y=sum(,);
z=sum(,);
result=x+y+z;
printf("这三组数的和为%d",result);
}
例2:swap()无法实现交换两个变量的值。
#include <stdio.h>
#include <stdlib.h>
void swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
int main()
{
int a=;
int b=;
swap(a,b);
printf("a=%d,b=%d",a,b);
return ;
}
原因是:C语言在调用函数时,永远只能传值给函数,不能传变量。
C语言数组和函数实例练习(一)的更多相关文章
- C语言数组和函数实例练习(二)
1.C语言中不允许函数的嵌套定义,但可以使用函数的嵌套调用. 例1:输入4个整数,找出其中最大的数. #include <stdio.h> #include <stdlib.h> ...
- GO语言数组和切片实例详解
本文实例讲述了GO语言数组和切片的用法.分享给大家供大家参考.具体分析如下: 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. (1)数组的创建. 数组有3种创建方式: ...
- C语言 数组做函数参数退化为指针的技术推演
//数组做函数参数退化为指针的技术推演 #include<stdio.h> #include<stdlib.h> #include<string.h> //一维数组 ...
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...
- C语言 数组做函数参数不传数组个数的遍历方法
//数组做函数参数不传数组个数的遍历方法 #include<stdio.h> #include<stdlib.h> #include<string.h> void ...
- C语言数组作为函数参数
数组可以作为函数的参数使用,进行数据传送. 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用:另一种是把数组名作为函数的形参和实参使用. 数组元素作函数实参 数组元素就是下标变量, ...
- R语言数组array函数
数组是一个可以在两个以上的维度存储数据的R数据对象.例如 - 如果创建尺寸(2,3,4)的数组,那么创建4个矩形矩阵每2行3列.数组只能存储数据类型. 使用 array()函数创建数组.它需要向量作为 ...
- 小学生都看得懂的C语言入门(3): 数组与函数
#include <stdio.h> int main() { int x; ; ; scanf("%d",&x){ sum+=x; cnt++; scanf( ...
- 5_PHP数组_3_数组处理函数及其应用_5_数组遍历语言结构
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组遍历语言结构 1. foreach ( array as $value ) 程序: <?php $int ...
随机推荐
- SQLServer外部数据导入--Excel版
例如要在test表里插入多行数据 假设字段有: ID.Name 首先要有需要导入的数据的Excel A1 对应ID B1 对应Name 选中Excel第一行的空白处,比如C1,在工具栏的函数文本框里输 ...
- 《CSS Mastery》读书笔记(2)
第二章 目标的样式 要用CSS样式化一个HTML元素,必须要定位一个元素, CSS的选择器就是这样的手段. 这章中,你要学到的 • Common selectors 普通选择器 • Advanc ...
- android黑科技系列——Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)
一.前言 在之前一篇文章已经介绍了一款网络访问软件的破解教程,当时采用的突破口是应用程序本身的一个漏洞,就是没有关闭日志信息,我们通过抓取日志获取到关键信息来找到突破口进行破解的.那篇文章也说到了,如 ...
- Android开发笔记(10)——使用Fragment传递
转载请注明:http://www.cnblogs.com/igoslly/p/6911165.html 由于最近废寝忘食地在开发App,没来得及及时做总结,没有用很高级的部件,勉强也使用一些功能完成了 ...
- word中选择嵌入式时图片被遮住,只显示小部分的解决方法
选中图片,点击如下 选择 行距选项 将行距改为单位行距即可.
- Assembly之instruction之Indirect Autoincrement Mode
Assembler Code Content of ROMMOV @R10+,0(R11) MOV @R10+,0(R11) Length: One or two words Operation: ...
- 微软CRM4.0 页面表单和腾讯QQ在线整合
现在通过QQ和客户联系.洽谈业务及沟通感情的场合越来越多,在微软CRM表单上整合QQ可以方便的显示客户QQ在线状态,点击图标即可和客户进行QQ聊天. 客户在线状态: 客户离线状态: 输入QQ号码后即时 ...
- Jmeter JSON断言和响应断言的区别是什么?
假设响应数据是{"code":0,"datas":{"informationStatus":1}} 响应断言:"code" ...
- CorelDRAW中内置的视频教程在哪里?
CorelDRAW中内置了很多教学内容和视频教程,可以帮助用户快速学习和掌握CorelDRAW的使用方法,创作出个性化的作品.很多小伙伴表示找不到软件自带学习视频,现在小编就来告诉你. 用户可以通过两 ...
- webstorm for mac
mac上使用webstrom,破解的方法 参见博客:Webstorm 破解2016.1 for mac 上面的说明有点问题,博主的写的有点问题.应该是1.先打开到注册页面:2.再关闭webstrom; ...