博客
关于我
C程序举例:利用数组
阅读量:282 次
发布时间:2019-03-03

本文共 4354 字,大约阅读时间需要 14 分钟。

利用数组

1,对10个数组元素依次赋值,逆序输出。

#include "stdio.h"int main(){   	int i,a[10];	printf("输入:"); 	for(i=0;i<10;i++)	scanf("%d",&a[i]);	printf("\n");	printf("输出:"); 	for(i=9;i>=0;i--)	printf("%2d",a[i]);	return 0;	}

运行结果:

输入:1 2 3 4 5 9 8 5 2 4输出: 4 2 5 8 9 5 4 3 2 1

2,利用数组输出一个斐波那契数列

#include "stdio.h"int main(){   	int i,a[20]={   1,1};	for(i=2;i<20;i++)	a[i]=a[i-1]+a[i-2];	for(i=0;i<20;i++)	{   		if(i%5==0)printf("\n");		printf("%6d",a[i]);	 } 	return 0;}

运行结果:

1     1     2     3     5     8    13    21    34    55    89   144   233   377   610   987  1597  2584  4181  6765

3,冒泡排序,使输入的十个数从小到大正序输出

#include"stdio.h" int main() {    	int a[10]; 	int i,j,t; 	for(i=0;i<10;i++) 	{    		scanf("%d",&a[i]);	}	for(j=0;j<9;j++)	for(i=0;i<9-j;i++)	{   		if(a[i>a[i+1]])		{   		t=a[i];		a[i]=a[i+1];		a[i+1]=t;	    }	} 	for(i=0;i<10;i++)	printf("%d ",a[i]);	return 0; }

运行结果:

9 8 7 6 5 4 3 2 1 00 1 2 3 4 5 6 7 8 9

4,二维数组:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在行号和列号。

#include"stdio.h"int main(){   	int i,j,r,c,max;	int a[3][4]={   1,2,3,4,8,9,10,11,12,5,6,7};	max=a[0][0];	for(i=0;i<3;i++)	for(j=0;j<4;j++)	if(a[i][j]>max)	{   		max=a[i][j];		r=i;		c=j;	}	printf("最大为%d,行号:%d,列号:%d",max,r,c);	return 0; }
最大为12,行号:2,列号:0

//因为这个输出结果我调了很久,因为下意识认为应该是三行零列才对,好久才反应过来,我定义的这个二位数组a[3][4]没有‘第三行’,也没有‘第四列’。

5,字符数组:输出一个已知的字符串。

#include "stdio.h"int main(){   	char c[15]={   'i',' ','a','m',' ','a',' ','s','t','u','d','e','n','t'};	int i;	for(i=0;i<15;i++)	{   		printf("%c",c[i]);	}	return 0;}

运行结果:

i am a student

6,输入一行字符,统计其中有多少个单词,单词之间用空格隔开

#include"stdio.h"int main(){   	char string[81];	int i,num=0,word=0;    char c;    gets(string);    for(i=0;(c=string[i])!='\0';i++)    if (c==' ')word =0;    else if(word ==0)    {       	word =1;    	num++;	}	printf("共%d个单词",num);	return 0;  }

运行结果:

i am a student.共4个单词

7,用筛选法求100内的素数

#include"stdio.h"#include"math.h"int main(){   	int i,j,n=0,a[101];	for(i=1;i<=100;i++)	a[i]=i;	a[1]=0;	for(i=2;i

运行结果

2    3    5    7   11   13   17   19   23   29   31   37   41   43   47   53   59   61   67   71   73   79   83   89   97

8,用选择法对十个整数排序

#include"stdio.h"int main(){   	int i,j,min,temp,a[11];	printf("enter data:\n");	for(i=1;i<11;i++) //这里只是想用a[1]到a[10],不是不知道有a[0]。	{   		printf("a[%d]=",i);		scanf("%d",&a[i]);	}	printf("the orginal numbers:\n") ;	for(i=1;i<11;i++)	{   		printf("%5d",a[i]);	}	for(i=1;i<10;i++)	{   		min=i;		for(j=i+1;j<11;j++)		{   			if(a[min]>a[j])			min=j;		 } 		temp=a[i];		a[i]=a[min];		a[min]=temp;	}	printf("\n"); 	printf("the sorted numbers:\n");	for(i=1;i<11;i++)	printf("%5d",a[i]);	return 0;}

运行结果:

enter data:a[1]=12a[2]=15a[3]=14a[4]=87a[5]=98a[6]=54a[7]=653a[8]=32a[9]=21a[10]=10the orginal numbers:   12   15   14   87   98   54  653   32   21   10the sorted numbers:   10   12   14   15   21   32   54   87   98  653

9,有一个已经排好序的数组,要求输入一个数后,按原来的排序的规律将他插入数组

#include"stdio.h"int main(){   	int a[11]={   1,4,6,8,9,12,13,28,46,96};	int temp1,temp2,number,end,i,j;	printf("array a:\n");	for(i=0;i<10;i++)	printf("%5d",a[i]);	printf("\n");	printf("insert number:\n");	scanf("%d",&number);	end=a[9];	if(number>end)	{   		a[10]=number;	}	else	{   		for(i=0;i<10;i++)		{   			if(a[i]>number)			{   				temp1=a[i];				a[i]=number;				for(j=i+1;j<11;j++)				{   					temp2=a[j];					a[j]=temp1;					temp1=temp2;				}				break;			}		}	}	printf("now array a:\n");	for(i=0;i<11;i++)	{   		printf("%5d",a[i]);		}	return 0;}

运行结果:

array a:    1    4    6    8    9   12   13   28   46   96insert number:16now array a:    1    4    6    8    9   12   13   16   28   46   96

10,将一个数组中的值按逆序重新存放。

#include"stdio.h" #define N 5//改变N的值就可以改变数组中可以逆序的数 int main() {    	int a[N],i,temp; 	printf("enter array a:\n"); 	for(i=0;i
enter array a:1 2 3 4 5array a:   1   2   3   4   5now array a:   5   4   3   2   1

11,输出直角排列的杨辉三角形

#include"stdio.h"#define N 10//改变定义的N值可以改变输出的杨辉三角的行数int main(){   	int i,j,a[N][N];	for(i=0;i

运行结果:

1   1   1   1   2   1   1   3   3   1   1   4   6   4   1   1   5  10  10   5   1   1   6  15  20  15   6   1   1   7  21  35  35  21   7   1   1   8  28  56  70  56  28   8   1   1   9  36  84 126 126  84  36   9   1

12,将字符数组s2中的全部字符复制到字符数组s1中。不用strcopy函数。复制时,‘/0’后面的字符不用复制。

#include"stdio.h"#include"string.h" int main(){   	char s1[80],s2[80];	int i;	printf("input s2:");	scanf("%s",s2);	for(i=0;i<=strlen(s2);i++)	s1[i]=s2[i];	printf("s1:%s\n",s1);	return 0;}
input s2:ceshis1:ceshi

转载地址:http://uecl.baihongyu.com/

你可能感兴趣的文章
02-Python-编写第一个程序
查看>>
09-Vue之本地应用v-for指令
查看>>
03-selenium元素定位
查看>>
19-selenium操作已启动的浏览器
查看>>
11-Python-作用域和命名空间
查看>>
10-appium-toast定位
查看>>
10-Java-方法介绍
查看>>
2020.2.13普及C组 晾衣绳【纪中】【排序】
查看>>
2020.2.13普及C组 罗密欧与朱丽叶的约会【纪中】【前缀和】
查看>>
纪中2020.3.4普及C组模拟赛总结
查看>>
2020.3.8普及C组 自动匹配(auto)【纪中】【二分】
查看>>
洛谷 P3374 【模板】树状数组 1
查看>>
纪中2020.3.18普及C组模拟赛总结
查看>>
纪中2020.4.8普及C组模拟赛总结
查看>>
YbtOJ 递推算法课堂过关 例5 平铺方案【递推(简单DP)】
查看>>
YbtOJ hash和hash表课堂过关 例1 字符串哈希【hash】
查看>>
YbtOJ hash和hash表课堂过关 例4 单词背诵【hash】【二分】
查看>>
【笔记】Linux 基本操作
查看>>
CSUST 2021 周赛 2 题解
查看>>
我们真的需要模型压缩吗
查看>>