C语言程序190例题_第1页
C语言程序190例题_第2页
C语言程序190例题_第3页
C语言程序190例题_第4页
C语言程序190例题_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序190例题第一部分:基础语法篇(1-30例)本部分聚焦C语言基础语法,涵盖头文件使用、变量定义、输入输出、基本运算等,是入门必备的基础案例,帮助快速熟悉C语言程序的基本结构与编写规范。例1:打印Hello,World!(最基础入门程序)功能:在屏幕上输出"Hello,World!",掌握C语言程序的基本框架(头文件、主函数、输出函数)。c

#include<stdio.h>

intmain(){

printf("Hello,World!\n");//输出指定字符串,\n表示换行

return0;//程序正常结束,返回0

}说明:#include<stdio.h>引入标准输入输出头文件,printf函数用于屏幕输出,main函数是程序的入口,所有C程序必须有且仅有一个main函数。例2:两个整数相加(基本运算与输入)功能:接收用户输入的两个整数,计算并输出它们的和,掌握变量定义、scanf输入函数与基本加法运算。c

#include<stdio.h>

intmain(){

intnum1,num2,sum;//定义3个整型变量,分别存储两个输入值和它们的和

printf("请输入两个整数(用空格分隔):");

scanf("%d%d",&num1,&num2);//接收用户输入,%d表示接收整型数据,&取变量地址

sum=num1+num2;//计算两个数的和

printf("两个数的和为:%d\n",sum);//输出结果

return0;

}例3:判断一个整数的奇偶性(条件判断if-else)功能:接收用户输入的整数,判断其是奇数还是偶数,掌握取模运算符%与if-else条件判断语句的使用。c

#include<stdio.h>

intmain(){

intnumber;

printf("请输入一个整数:");

scanf("%d",&number);

if(number%2==0){//取模运算,余数为0则是偶数

printf("%d是偶数\n",number);

}else{//余数不为0则是奇数

printf("%d是奇数\n",number);

}

return0;

}例4:计算一个正整数的阶乘(for循环)功能:接收用户输入的正整数,计算其阶乘(n!=1×2×3×...×n),掌握for循环的使用与累加器变量的应用。c

#include<stdio.h>

intmain(){

intn,i;

unsignedlonglongfactorial=1;//用无符号长整型存储阶乘,避免溢出

printf("请输入一个正整数:");

scanf("%d",&n);

if(n<0){

printf("错误:请输入正整数!\n");

return1;//程序异常结束,返回非0值

}

for(i=1;i<=n;i++){//for循环,从1遍历到n

factorial*=i;//等价于factorial=factorial*i

}

printf("%d的阶乘=%llu\n",n,factorial);

return0;

}例5:判断一个数是否为素数(循环与条件结合)功能:判断用户输入的正整数是否为素数(大于1,且只能被1和自身整除的数),掌握循环的边界优化与多条件判断。c

#include<stdio.h>

#include<math.h>//引入数学头文件,用于sqrt函数

intmain(){

intn,i,isPrime=1;//isPrime作为标志,1表示是素数,0表示不是

printf("请输入一个正整数:");

scanf("%d",&n);

if(n<=1){//小于等于1的数不是素数

isPrime=0;

}else{

for(i=2;i<=sqrt(n);i++){//优化:只需判断到n的平方根

if(n%i==0){//能被其他数整除,不是素数

isPrime=0;

break;//跳出循环,无需继续判断

}

}

}

if(isPrime){

printf("%d是素数\n",n);

}else{

printf("%d不是素数\n",n);

}

return0;

}例6:生成斐波那契数列前n项(循环应用)功能:接收用户输入的项数n,生成斐波那契数列前n项(前两项为0和1,后续每一项是前两项之和),掌握循环中多变量的状态变化。c

#include<stdio.h>

intmain(){

intn,first=0,second=1,next,i;

printf("请输入要生成的斐波那契数列项数:");

scanf("%d",&n);

if(n<=0){

printf("错误:请输入正整数!\n");

return1;

}

printf("斐波那契数列前%d项:",n);

for(i=0;i<n;i++){

if(i<=1){

next=i;//前两项为0和1

}else{

next=first+second;//后续项为前两项之和

first=second;//更新first为上一项

second=next;//更新second为当前项

}

printf("%d",next);

}

printf("\n");

return0;

}例7:交换两个变量的值(临时变量应用)功能:接收用户输入的两个整数,交换它们的值并输出,掌握临时变量的使用(避免变量值被覆盖)。c

#include<stdio.h>

intmain(){

inta,b,temp;

printf("请输入两个整数a和b(用空格分隔):");

scanf("%d%d",&a,&b);

printf("交换前:a=%d,b=%d\n",a,b);

temp=a;//用temp暂存a的值

a=b;//将b的值赋给a

b=temp;//将temp中暂存的a值赋给b

printf("交换后:a=%d,b=%d\n",a,b);

return0;

}例8:反转一个整数(循环与数字操作)功能:接收用户输入的整数,将其反转(如123反转为321,-456反转为-654),掌握取模、整数除法与循环的结合使用。c

#include<stdio.h>

intmain(){

intn,reversed=0,remainder;

printf("请输入一个整数:");

scanf("%d",&n);

intoriginal=n;//暂存原始值,用于最终输出

//处理负数,先转为正数反转,最后再加上负号

if(n<0){

n=-n;

}

while(n!=0){

remainder=n%10;//提取最后一位数字

reversed=reversed*10+remainder;//拼接反转后的数字

n/=10;//去掉最后一位数字

}

//如果原始数是负数,反转后加上负号

if(original<0){

reversed=-reversed;

}

printf("反转后的整数:%d\n",reversed);

return0;

}例9:用数组求一组数的最大值和最小值(数组与循环)功能:接收用户输入的一组整数,存储到数组中,遍历数组找到最大值和最小值,掌握数组的定义、输入与遍历。c

#include<stdio.h>

#defineN100//定义常量N,表示数组最大容量

intmain(){

intarr[N],n,i,max,min;

printf("请输入元素个数(不超过100):");

scanf("%d",&n);

if(n<=0||n>100){

printf("错误:元素个数需在1-100之间!\n");

return1;

}

printf("请输入%d个整数:",n);

for(i=0;i<n;i++){

scanf("%d",&arr[i]);//给数组元素赋值

}

max=min=arr[0];//初始化最大值和最小值为数组第一个元素

for(i=1;i<n;i++){

if(arr[i]>max){//找到更大的值,更新max

max=arr[i];

}

if(arr[i]<min){//找到更小的值,更新min

min=arr[i];

}

}

printf("最大值:%d\n",max);

printf("最小值:%d\n",min);

return0;

}例10:简单计算器(多条件判断switch)功能:实现两个数的加、减、乘、除运算,接收用户输入的运算符和两个数字,输出结果,掌握switch-case多分支判断。c

#include<stdio.h>

intmain(){

floatnum1,num2,result;

charop;

printf("请输入运算表达式(格式:数字1运算符数字2):");

scanf("%f%c%f",&num1,&op,&num2);

switch(op){

case'+':

result=num1+num2;

break;//跳出switch,避免穿透

case'-':

result=num1-num2;

break;

case'*':

result=num1*num2;

break;

case'/':

if(num2==0){//判断除数是否为0,避免报错

printf("错误:除数不能为0!\n");

return1;

}

result=num1/num2;

break;

default:

printf("错误:无效的运算符!\n");

return1;

}

printf("%.2f%c%.2f=%.2f\n",num1,op,num2,result);//保留2位小数输出

return0;

}例11:打印九九乘法表(双重循环)功能:打印标准的九九乘法表,掌握双重for循环的嵌套使用与格式控制。c

#include<stdio.h>

intmain(){

inti,j;

//外层循环控制行数(1-9)

for(i=1;i<=9;i++){

//内层循环控制每行的列数(1-i)

for(j=1;j<=i;j++){

printf("%d×%d=%d\t",j,i,i*j);//\t表示制表符,使格式对齐

}

printf("\n");//每行结束后换行

}

return0;

}例12:计算1到n的累加和(while循环)功能:接收用户输入的正整数n,计算1+2+3+...+n的和,掌握while循环的使用。c

#include<stdio.h>

intmain(){

intn,i=1,sum=0;

printf("请输入一个正整数n:");

scanf("%d",&n);

if(n<0){

printf("错误:请输入正整数!\n");

return1;

}

while(i<=n){//当i小于等于n时,执行循环

sum+=i;//等价于sum=sum+i

i++;//i自增,避免死循环

}

printf("1到%d的累加和为:%d\n",n,sum);

return0;

}例13:判断闰年(多条件组合)功能:接收用户输入的年份,判断该年份是否为闰年(闰年规则:能被4整除但不能被100整除,或能被400整除),掌握多条件逻辑运算。c

#include<stdio.h>

intmain(){

intyear;

printf("请输入年份:");

scanf("%d",&year);

//闰年判断条件:(能被4整除且不能被100整除)或能被400整除

if((year%4==0&&year%100!=0)||(year%400==0)){

printf("%d年是闰年\n",year);

}else{

printf("%d年不是闰年\n",year);

}

return0;

}例14:输出1到n之间的所有素数(循环嵌套)功能:接收用户输入的正整数n,输出1到n之间的所有素数,掌握循环嵌套与素数判断的结合。c

#include<stdio.h>

#include<math.h>

intmain(){

intn,i,j,isPrime;

printf("请输入一个正整数n:");

scanf("%d",&n);

if(n<2){

printf("1到%d之间没有素数\n",n);

return0;

}

printf("1到%d之间的素数:",n);

for(i=2;i<=n;i++){//遍历1到n的所有数

isPrime=1;

for(j=2;j<=sqrt(i);j++){//判断当前数i是否为素数

if(i%j==0){

isPrime=0;

break;

}

}

if(isPrime){

printf("%d",i);

}

}

printf("\n");

return0;

}例15:求两个数的最大公约数(辗转相除法)功能:接收用户输入的两个正整数,用辗转相除法求它们的最大公约数,掌握循环与取模运算的实际应用。c

#include<stdio.h>

intmain(){

inta,b,temp;

printf("请输入两个正整数:");

scanf("%d%d",&a,&b);

//确保a>=b,若不是则交换两者

if(a<b){

temp=a;

a=b;

b=temp;

}

//辗转相除法:用大数除以小数,余数作为新的小数,原小数作为新的大数,直到余数为0

while(b!=0){

temp=a%b;

a=b;

b=temp;

}

printf("最大公约数为:%d\n",a);

return0;

}例16:求两个数的最小公倍数(结合最大公约数)功能:接收用户输入的两个正整数,先求最大公约数,再通过公式(最小公倍数=两数之积/最大公约数)计算最小公倍数。c

#include<stdio.h>

intmain(){

inta,b,temp,gcd,lcm;

printf("请输入两个正整数:");

scanf("%d%d",&a,&b);

intoriginalA=a,originalB=b;//暂存原始值,用于计算最小公倍数

//辗转相除法求最大公约数

while(b!=0){

temp=a%b;

a=b;

b=temp;

}

gcd=a;

//计算最小公倍数,注意先乘后除,避免整数溢出(可改用longlong)

lcm=(originalA*originalB)/gcd;

printf("最大公约数:%d\n",gcd);

printf("最小公倍数:%d\n",lcm);

return0;

}例17:打印等腰三角形(双重循环与格式控制)功能:接收用户输入的行数,打印等腰三角形(由*组成),掌握双重循环与空格、星号的格式控制。c

#include<stdio.h>

intmain(){

introws,i,j,space;

printf("请输入等腰三角形的行数:");

scanf("%d",&rows);

//外层循环控制行数

for(i=1;i<=rows;i++){

//打印空格,使三角形居中

for(space=1;space<=rows-i;space++){

printf("");

}

//打印星号,每行星号数量为2*i-1

for(j=1;j<=2*i-1;j++){

printf("*");

}

printf("\n");//换行

}

return0;

}例18:计算一个数的绝对值(条件判断)功能:接收用户输入的整数,计算其绝对值(正数和0的绝对值是自身,负数的绝对值是其相反数)。c

#include<stdio.h>

intmain(){

intnum,absNum;

printf("请输入一个整数:");

scanf("%d",&num);

if(num<0){

absNum=-num;

}else{

absNum=num;

}

printf("%d的绝对值是:%d\n",num,absNum);

return0;

}例19:用do-while循环计算n的阶乘(do-while循环)功能:用do-while循环实现n的阶乘计算,与for循环对比,掌握do-while循环(先执行后判断)的特点。c

#include<stdio.h>

intmain(){

intn,i=1;

unsignedlonglongfactorial=1;

printf("请输入一个正整数:");

scanf("%d",&n);

if(n<0){

printf("错误:请输入正整数!\n");

return1;

}

//do-while循环:先执行一次循环体,再判断条件

do{

factorial*=i;

i++;

}while(i<=n);

printf("%d的阶乘=%llu\n",n,factorial);

return0;

}例20:统计输入字符串的长度(字符数组与循环)功能:接收用户输入的字符串,统计其长度(不包含结束符'\0'),掌握字符数组的使用与字符串结束标志。c

#include<stdio.h>

intmain(){

charstr[100];

intlength=0,i=0;

printf("请输入一个字符串:");

gets(str);//gets函数用于接收字符串(注意:gets存在安全隐患,可改用fgets)

//遍历字符串,直到遇到结束符'\0'

while(str[i]!='\0'){

length++;

i++;

}

printf("字符串的长度为:%d\n",length);

return0;

}说明:fgets函数替代方案:fgets(str,100,stdin);,需注意fgets会读取换行符,若要去除换行符,可在循环后判断str[length-1]是否为'\n',若是则将其改为'\0'。例21:比较两个字符串是否相等(字符数组遍历)功能:接收用户输入的两个字符串,比较它们是否完全相等,掌握字符数组的遍历与多条件判断。c

#include<stdio.h>

intmain(){

charstr1[100],str2[100];

inti=0,equal=1;

printf("请输入第一个字符串:");

gets(str1);

printf("请输入第二个字符串:");

gets(str2);

//遍历两个字符串,逐字符比较

while(str1[i]!='\0'||str2[i]!='\0'){

if(str1[i]!=str2[i]){

equal=0;

break;

}

i++;

}

if(equal){

printf("两个字符串相等\n");

}else{

printf("两个字符串不相等\n");

}

return0;

}例22:将字符串中的小写字母转为大写字母(字符操作)功能:接收用户输入的字符串,将其中的所有小写字母转为大写字母,其他字符不变,掌握ASCII码的应用(小写字母ASCII码比对应大写字母大32)。c

#include<stdio.h>

intmain(){

charstr[100];

inti=0;

printf("请输入一个字符串:");

gets(str);

while(str[i]!='\0'){

//判断是否为小写字母(a-z的ASCII码范围:97-122)

if(str[i]>='a'&&str[i]<='z'){

str[i]-=32;//转为大写字母

}

i++;

}

printf("转换后的字符串:%s\n",str);

return0;

}例23:求数组元素的平均值(数组与循环)功能:接收用户输入的一组整数,计算并输出它们的平均值,掌握数组遍历与浮点型计算。c

#include<stdio.h>

#defineN100

intmain(){

intarr[N],n,i,sum=0;

floataverage;

printf("请输入元素个数(不超过100):");

scanf("%d",&n);

if(n<=0||n>100){

printf("错误:元素个数需在1-100之间!\n");

return1;

}

printf("请输入%d个整数:",n);

for(i=0;i<n;i++){

scanf("%d",&arr[i]);

sum+=arr[i];

}

average=(float)sum/n;//强制转换为浮点型,避免整数除法

printf("数组元素的平均值为:%.2f\n",average);

return0;

}例24:判断一个数是否为水仙花数(三位数)功能:判断用户输入的三位数是否为水仙花数(水仙花数:一个三位数,其各位数字的立方和等于该数本身,如153=1³+5³+3³)。c

#include<stdio.h>

intmain(){

intnum,hundreds,tens,units;

printf("请输入一个三位数:");

scanf("%d",&num);

if(num<100||num>999){

printf("错误:请输入三位数!\n");

return1;

}

//提取百位、十位、个位数字

hundreds=num/100;

tens=(num/10)%10;

units=num%10;

//判断是否为水仙花数

if(hundreds*hundreds*hundreds+tens*tens*tens+units*units*units==num){

printf("%d是水仙花数\n",num);

}else{

printf("%d不是水仙花数\n",num);

}

return0;

}例25:输出100到999之间的所有水仙花数(循环与判断)功能:遍历100到999之间的所有三位数,输出其中的水仙花数,掌握循环与水仙花数判断的结合。c

#include<stdio.h>

intmain(){

intnum,hundreds,tens,units;

printf("100到999之间的水仙花数:");

for(num=100;num<=999;num++){

hundreds=num/100;

tens=(num/10)%10;

units=num%10;

if(hundreds*hundreds*hundreds+tens*tens*tens+units*units*units==num){

printf("%d",num);

}

}

printf("\n");

return0;

}例26:用指针交换两个变量的值(指针基础)功能:通过指针操作,交换两个变量的值,掌握指针的定义、取值(*)与取地址(&)操作。c

#include<stdio.h>

intmain(){

inta,b,temp;

int*p1,*p2;//定义两个整型指针

printf("请输入两个整数a和b:");

scanf("%d%d",&a,&b);

p1=&a;//指针p1指向变量a的地址

p2=&b;//指针p2指向变量b的地址

printf("交换前:a=%d,b=%d\n",*p1,*p2);//*p1表示取p1指向地址的值

//通过指针交换值

temp=*p1;

*p1=*p2;

*p2=temp;

printf("交换后:a=%d,b=%d\n",*p1,*p2);

return0;

}例27:用指针访问数组元素(指针与数组)功能:定义一个数组,通过指针遍历数组并输出所有元素,掌握数组名与指针的关系(数组名本质是数组首元素的地址)。c

#include<stdio.h>

intmain(){

intarr[5]={10,20,30,40,50};

int*p,i;

p=arr;//数组名arr等价于&arr[0],指针p指向数组首元素

printf("数组元素:");

//方法1:通过指针自增遍历

for(i=0;i<5;i++){

printf("%d",*p);//取指针指向的值

p++;//指针自增,指向next元素

}

printf("\n");

//方法2:通过数组名+偏移量遍历

p=arr;

for(i=0;i<5;i++){

printf("%d",*(p+i));//p+i表示数组第i个元素的地址

}

printf("\n");

return0;

}例28:计算两个数的差(函数基础)功能:定义一个自定义函数,接收两个整数参数,返回它们的差,主函数调用该函数并输出结果,掌握函数的定义与调用。c

#include<stdio.h>

//函数定义:返回值类型为int,参数为两个int型变量

intsubtract(inta,intb){

returna-b;//返回a与b的差

}

intmain(){

intnum1,num2,result;

printf("请输入两个整数:");

scanf("%d%d",&num1,&num2);

result=subtract(num1,num2);//调用subtract函数,传入参数

printf("%d-%d=%d\n",num1,num2,result);

return0;

}例29:用函数判断素数(函数与判断结合)功能:定义一个判断素数的函数,主函数接收用户输入,调用该函数并输出结果,掌握函数的返回值与条件判断的结合。c

#include<stdio.h>

#include<math.h>

//函数定义:判断n是否为素数,是则返回1,否则返回0

intisPrime(intn){

inti;

if(n<=1){

return0;

}

for(i=2;i<=sqrt(n);i++){

if(n%i==0){

return0;

}

}

return1;

}

intmain(){

intnum;

printf("请输入一个正整数:");

scanf("%d",&num);

if(isPrime(num)){//调用函数,判断返回值是否为1

printf("%d是素数\n",num);

}else{

printf("%d不是素数\n",num);

}

return0;

}例30:用函数求数组的最大值(函数与数组)功能:定义一个函数,接收数组和数组长度作为参数,返回数组的最大值,主函数调用该函数并输出结果,掌握函数参数传递数组的方法。c

#include<stdio.h>

#defineN100

//函数定义:接收数组(本质是指针)和长度,返回最大值

intfindMax(intarr[],intlen){

intmax=arr[0],i;

for(i=1;i<len;i++){

if(arr[i]>max){

max=arr[i];

}

}

returnmax;

}

intmain(){

intarr[N],n,i,max;

printf("请输入元素个数(不超过100):");

scanf("%d",&n);

if(n<=0||n>100){

printf("错误:元素个数需在1-100之间!\n");

return1;

}

printf("请输入%d个整数:",n);

for(i=0;i<n;i++){

scanf("%d",&arr[i]);

}

max=findMax(arr,n);//调用函数,传入数组和长度

printf("数组的最大值为:%d\n",max);

return0;

}第二部分:数组与指针篇(31-60例)本部分聚焦数组与指针的核心应用,涵盖一维/二维数组、指针操作、数组与指针的关联、字符串处理等,是C语言进阶的关键内容,帮助理解内存地址的操作逻辑。例31:一维数组的初始化与遍历(数组基础拓展)功能:演示一维数组的多种初始化方式,遍历数组并输出元素,掌握数组初始化的不同写法与注意事项。c

#include<stdio.h>

intmain(){

//数组的4种初始化方式

intarr1[5]={1,2,3,4,5};//完全初始化,指定所有元素

intarr2[5]={1,2,3};//部分初始化,未指定的元素默认为0

intarr3[]={1,2,3,4,5};//不指定长度,由初始化元素个数决定长度(5)

intarr4[5]={0};//所有元素初始化为0

printf("arr1:");

for(inti=0;i<5;i++){

printf("%d",arr1[i]);

}

printf("\narr2:");

for(inti=0;i<5;i++){

printf("%d",arr2[i]);

}

printf("\narr3:");

for(inti=0;i<5;i++){

printf("%d",arr3[i]);

}

printf("\narr4:");

for(inti=0;i<5;i++){

printf("%d",arr4[i]);

}

printf("\n");

return0;

}例32:二维数组的定义与遍历(二维数组基础)功能:定义一个二维数组,初始化并遍历输出所有元素,掌握二维数组的定义、初始化与双重循环遍历方法。c

#include<stdio.h>

intmain(){

//定义一个3行4列的二维数组,初始化

intarr[3][4]={

{1,2,3,4},

{5,6,7,8},

{9,10,11,12}

};

//遍历二维数组:外层循环控制行,内层循环控制列

printf("二维数组元素:\n");

for(inti=0;i<3;i++){//行循环

for(intj=0;j<4;j++){//列循环

printf("%d\t",arr[i][j]);

}

printf("\n");//每行结束换行

}

return0;

}例33:二维数组的部分初始化与默认值(二维数组拓展)功能:演示二维数组的部分初始化方式,观察未初始化元素的默认值,掌握二维数组初始化的灵活用法。c

#include<stdio.h>

intmain(){

intarr1[3][4]={1,2,3};//按行优先顺序初始化,未指定的元素默认为0

intarr2[3][4]={{1},{2},{3}};//每行只初始化第一个元素,其余为0

intarr3[][4]={1,2,3,4,5,6};//不指定行数,由初始化元素个数决定(2行)

printf("arr1:\n");

for(inti=0;i<3;i++){

for(intj=0;j<4;j++){

printf("%d\t",arr1[i][j]);

}

printf("\n");

}

printf("arr2:\n");

for(inti=0;i<3;i++){

for(intj=0;j<4;j++){

printf("%d\t",arr2[i][j]);

}

printf("\n");

}

printf("arr3:\n");

for(inti=0;i<2;i++){

for(intj=0;j<4;j++){

printf("%d\t",arr3[i][j]);

}

printf("\n");

}

return0;

}例34:计算二维数组的元素和(二维数组应用)功能:定义一个二维数组,计算所有元素的和并输出,掌握二维数组的遍历与累加运算。c

#include<stdio.h>

intmain(){

intarr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

intsum=0;

//遍历所有元素,累加求和

for(inti=0;i<3;i++){

for(intj=0;j<4;j++){

sum+=arr[i][j];

}

}

printf("二维数组所有元素的和为:%d\n",sum);

return0;

}例35:查找二维数组中的最大值(二维数组与判断)功能:遍历二维数组,找到其中的最大值并输出其位置(行号和列号),掌握二维数组的遍历与多条件判断。c

#include<stdio.h>

intmain(){

intarr[3][4]={{1,2,3,4},{5,16,7,8},{9,10,11,12}};

intmax=arr[0][0],row=0,col=0;

for(inti=0;i<3;i++){

for(intj=0;j<4;j++){

if(arr[i][j]>max){

max=arr[i][j];

row=i;//记录最大值的行号

col=j;//记录最大值的列号

}

}

}

printf("二维数组的最大值为:%d\n",max);

printf("最大值所在位置:第%d行,第%d列(从0开始计数)\n",row,col);

return0;

}例36:二维数组的转置(行变列,列变行)功能:将一个m行n列的二维数组转置为n行m列,输出转置前后的数组,掌握二维数组的元素交换与遍历技巧。c

#include<stdio.h>

intmain(){

intarr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

inttranspose[4][3];//转置后的数组(4行3列)

//转置:将arr[i][j]赋值给transpose[j][i]

for(inti=0;i<3;i++){

for(intj=0;j<4;j++){

transpose[j][i]=arr[i][j];

}

}

//输出原数组

printf("原数组:\n");

f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论