if(a%c==0)printf("%d",c);
printf("\n");
}
}
return0;
}
24.编程输出如下形式的九九乘法表
123456789
---------
1
24
369
……
816243240485664
91827364554637281
#include
intmain()
{
inta,b,s;
for(a=1;a<=9;a++)
{
for(b=1;b<=a;b++)
{
s=a*b;
printf("%d",s);
}
printf("\n");
}
}
25.一个偶数总能表示为两个素数之和。
要求:
输入一个偶数,将其表示成两个素数之和,直到输入的数为0。
#include
intmain()
{
inti,j,n,k;
printf("请输入一个偶数\n");
scanf("%d",&n);
if(n!
=0)
{
for(i=2;i<=n/2;i++)
{
for(j=2;j
if(i%j==0)
break;
if(j==i)
{
for(k=2;kif((n-i)%k==0)
break;
if(k==(n-i))
{
printf("%d%d\n",i,k);
}
}
}
}
return0;
}
26.输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。
#include
intmain()
{
inta,b,c,s[10];
for(a=0;a<10;a++)
scanf("%d",&s[a]);
printf("\n");
for(b=0;b<9;b++)
for(a=0;a<9-b;a++)
if(s[a]>s[a+1])
{
c=s[a];
s[a]=s[a+1];
s[a+1]=c;
}
for(a=0;a<10;a++)
printf("%d",s[a]);
printf("\n");
return0;
}
27.输入10个整型整数,用选择法对这10个数排序,并该由大到小顺序在屏幕上输出。
#include
intmain()
{
inta[10],i,j,t,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])min=j;
t=a[i];
a[i]=a[min];
a[min]=t;
}
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return0;
}
28.将一个数组中的值按逆序重新存放。
例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。
(同一数组中完成)
#include
intmain()
{
inti;
chara[5];
scanf("%s",a);
for(i=4;i>=0;i--)
printf("%c",a[i]);
printf("\n");
return0;
}
29.给一个不多于6位的正整数,要求:
①求出它是几位数;②分别输出每一位数字;③按逆序输出各位数字,例如原数为158,应输出851。
(利用数组知识)
#include
#include
intmain()
{
intm,i,j;
chara[50];
scanf("%s",a);
m=strlen(a);
printf("%d\n",m);
for(i=0;i{
printf("%c",a[i]);
}
printf("\n");
for(j=m-1;j>=0;j--)
{
printf("%c",a[j]);
}
printf("\n");
return0;
}
30.用筛选法求100之内的素数。
(利用数组知识)
#include
#include
intmain()
{
inta[101],i,j,n;
for(i=0;i<100;i++)
a[i]=i;
a[0]=1;
for(i=2;ifor(j=i+1;j<=100;j++)
{
if(a[i]!
=0&&a[j]!
=0)
if(a[j]%a[i]==0)
a[j]=0;
}
for(i=2,n=0;i<100;i++)
{
if(a[i]!
=0)
printf("%d",a[i]);
}
printf("\n");
return0;
}
31.编程实现:
输入任意一个不超过5位的十进制整数,取出该数中的所有奇数数字,按原来的顺序组成一个新的数。
#include
#include
intmain()
{
inti,b;
chara[10];
gets(a);
b=strlen(a);
for(i=0;i
{
if((int)a[i]%2!
=0)
printf("%c",a[i]);
}
puts("");
}
32.有一个已升序排列的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
(在同一数组中实现)
#include
intmain()
{
inti,j,s;
chara[10]={1,2,4,9,32,41,64,88,91,98};
scanf("%d",&s);
for(i=0;i<10;i++)
{
if(s>a[i])
printf("%d",a[i]);
elsebreak;
}
printf("%d",s);
for(j=i;;j++)
{
printf("%d",a[j]);
if(a[j]==a[9])break;
}
printf("\n");
return0;
}
33.将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。
#include
intmain()
{
inti,j,a[2][3]={{1,2,3},{4,5,6}},b[3][2];
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%5d",b[i][j]);
printf("\n");
}
return0;
}34.在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。
#include
intmain()
{
inti,j,a=0,b=0,s[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},max;
max=s[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(s[i][j]>max)
{
max=s[i][j];
a=i;
b=j;
}
printf("%d%d%d\n",ma