C敲好的代码.docx
《C敲好的代码.docx》由会员分享,可在线阅读,更多相关《C敲好的代码.docx(12页珍藏版)》请在冰豆网上搜索。
C敲好的代码
将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8.
#include
#defineN5
intmain()
{
inti,temp,a[N];
printf("entercarrya:
\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("arraya:
\n");
for(i=0;i<5;i++)
printf("%4d",a[i]);
for(i=0;i{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\nnowcarrya:
");
for(i=0;iprintf("%4d",a[i]);
printf("\n");
return0;
}
输出以下的杨辉三角形(要求输出10行)。
1
11
121
1331
14641
15101051
#include
#defineN10
intmain()
{
inti,j,a[N][N];
for(i=0;i{
a[i][i]=1;
a[i][0]=1;
}
for(i=2;ifor(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i{
for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return0;
}
想要输出以下的结果,用函数调用实现.
************************
Howdoyoudo!
************************
#include
intmain()
{
voidprint_star();
voidprint_message();
print_star();
print_message();
print_star();
return0;
}
voidprint_star()
{
printf("**************\n");
}
voidprint_message()
{
printf("Howdoyoudo!
\n");
}
有⼀一串串序列列,假设只有数字和字⺟母的话,⽐比如这样abbaabWWSS30要求,将所有的字⺟母⼤大⼩小写翻转,数字取它的互补数,相加为9的两个数互补(这个说法是我乱编的)最终的输出应该是ABBAABwwss69
#include
#include
intmain(void)
{
inti,lenth;
charstr[100];
gets(str);//输入序列
lenth=strlen(str);
for(i=0;i{
if(str[i]>='A'&&str[i]<='Z')//判断大写
str[i]=str[i]+32;//换成小写
elseif(str[i]>='a'&&str[i]<='z')//判断小写
str[i]=str[i]-32;//换成大写
elsestr[i]=105-str[i];//105是0和9ASII码值的和;
printf("%c",str[i]);
}
}
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
#include
intmain()
{
inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,number,end,i,j;
printf("arraya:
\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insertdata:
");
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("Nowarraya:
\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
#include
intmain()
{
intp,r,n,m,temp;
printf("pleaseinputtwonumber:
");
scanf("%d,%d,",&n,&m);
if(n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!
=0)
{
r=n%m;
n=m;
m=r;
}
printf("最大公约数是:
%d\n");
printf("最小公倍数为:
%d\n",p/n);
return0;
}
输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
intmain()
{
intmain(floatx,floaty);
intmin(floatx,floaty);
intmax(floatx,floaty);
inti,j,k,a,b,c,d;
printf("pleaseinputtwonumbers:
\n");
scanf("%d%d",&a,&b);
c=max(a,b);
d=min(a,b);
for(i=2;i{
if(a%i==0&&b%i==0)
{
k=i;
printf("最大公约数是:
%d\n",k);
break;
}
}
for(j=c;;j++)
{
if(j%a==0&&j%b==0)
{
c=j;
printf("最小公倍数是:
%d\n",c);
break;
}
}
}
intmax(floatx,floaty)
{
floatz;
z=x>y?
x:
y;
return(z);
}
intmin(floatx,floaty)
{
floatz;
z=xx:
y;
return(z);
}
/*选择法对10个数排序*/
#include
intmain()
{
inti,j,min,temp,a[11];
printf("enterdata:
\n");
for(i=1;i<=10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("Theorginalnumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for(i=1;i<=9;i++)
{
min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThesortednumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
/*冒泡法排序*/
#include
intmain()
{
inta[10];
inti,j,t;
printf("input10numbers:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
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;
}
printf("thesortednumbers:
\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
return0;
}
用指针方法对10个整数按由大到小顺序排序
#include
intmain()
{
voidsort(intx[],intn);//sort函数声明
inti,*p,a[10];
p=a;//指针变量p指向a[0]
printf("pleaseenter10integernumbers:
");
for(i=0;i<10;i++)
scanf("%d",p++);
p=a;//指针变量重新指向a[0]
sort(p,10);//调用sort函数
for(p=a,i=0;i<10;i++)//输出排序后的10个数组元素
{
printf("%3d",*p);
p++;
}
printf("\n");
return0;
}
voidsort(intx[],intn)//定义sort函数,x是形参数组名
{
inti,j,k,t;
for(i=0;i{
k=i;
for(j=i+1;jif(x[j]>x[k])k=j;
if(k!
=i)
{
t=x[i];x[i]=x[k];x[k]=t;
}
}
}
利用随机函数产生100个10~99之间(包括10和99)的随机整数存入一维数组A
#include
#include
intmain()
{
inta[100],i;/*存放随机数的数组*/
time_tt1;/*用于存放时间*/
time(&t1);/*取得当前系统时间*/
srand(t1);/*设置随机数种子*/
for(i=0;i<100;i++)/*循环生成10个随机数,放到数组a中*/
a[i]=10+rand()%90;
for(i=0;i<20;i++)
printf("%3d\n",a[i]);
return0;/*数值范围在10到99间,需要不同范围的数据请自行更改*/
}
利利⽤用所学语⾔言的随机数函数,来⽣生成⼆二⼗十个随机数(可以重复).之后利利⽤用你⽬目前会⽤用的排序⽅方法将他们排序。
输出排序前后输出排序后的结果.每五个元素换⼀一次⾏行行,记得加⼀一段描述性⽂文字区分前后的变化
#include
#include
intmain()
{
inta[100],i,j,t;/*存放随机数的数组*/
time_tt1;/*用于存放时间*/
time(&t1);/*取得当前系统时间*/
srand(t1);/*设置随机数种子*/
for(i=0;i<100;i++)/*循环生成10个随机数,放到数组a中*/
a[i]=10+rand()%90;
for(i=0;i<20;i++)
printf("%3d",a[i]);/*数值范围在10到99间,需要不同范围的数据请自行更改*/
printf("\n");
for(j=0;j<19;j++)
for(i=0;i<19-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("thesortednumbers:
\n");
for(i=0;i<20;i++)
printf("%3d",a[i]);
printf("\n");
return0;
}
⼀一段字符串串,其中只有空格和字⺟母.⽐比如Ilovetaylorswift要求将这个字符串串的按单词翻转过来.也就是说,应该得到swifttaylorloveI对单词的定义就是没有空格的连续字符另外,如果字符串串是Ihaveanapple,可以看到前后都有多余的空格,最后返回的还必须是appleanhaveI也就是说两端多余的空格必须处理理掉.
如果上⾯面⽆无法完成的,就改成:
计算这段字符串串有多少个单词.所以Ilovetaylorswift有四个单词
#defineN3
#include
main()
{
charstr[N][20];
inti=0,j;
scanf("%s%s%s",str[i],str[i+1],str[i+2]);
for(i=0;iprintf("%s",str[i]);
printf("\n");
for(i=N-1;i>=0;i--)
printf("%s",str[i]);
}