100-输出图案
#include<stdio.h>
int main(void)
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=4-i;j>0;j--)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<4;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(j=2*(4-i)-1;j>=1;j--)
printf("*");
if(i!=3)
printf("\n");
}
return 0;
}
101-找队友
#include<stdio.h>
int main(void)
{
char i,j,k;
for(i='x';i<='z';i++)
{
for(j='x';j<='z';j++)
{
if(i!=j)
{
for(k='x';k<='z';k++)
{
if(k!=i&&k!=j)
{
if(i!='x' && k!='x' && k!='z')
{
printf("A--%c\nB--%c\nC--%c",i,j,k);
}
}
}
}
}
}
return 0;
}
102-对数组逆序输出
#include<stdio.h>
int main(void)
{
int i,a[10];
for(i=0;i<10;i++)
a[i]=i+1;
for(i=9;i>=0;i--)
printf("%d ",a[i]);
return 0;
}
103-用数组来处理Fibonacci数列问题
#include<stdio.h>
int main(void)
{
int i;
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0)
printf("\n");
printf("%-12d",f[i]);
}
return 0;
}
104-冒泡法-我发现我把它和选择排序有点混了,不能这个样子
#include<stdio.h>
int main(void)
{
float a[10],t;
int i,j;
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<10;i++)
printf("%.0f ",a[i]);
return 0;
}
105-二维数组的转换
#include<stdio.h>
int main(void)
{
int a[2][3],b[3][2];
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}
}
106-有一个3*4的矩阵,要求编程序输出其中最大的值,以及对应的行和列
#include<stdio.h>
int main(void)
{
int i,j,max,ii=0,jj=0,a[3][4];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
if(i==0&&j==0)
{
max=a[0][0];
}
if(max<a[i][j])
{
max=a[i][j];
ii=i;
jj=j;
}
}
}
printf("%d %d %d",max,ii,jj);
return 0;
}
107-输出一个已知的字符串
#include<stdio.h>
#include<string.h>
int main(void)
{
char a[20];
gets(a);
int len = strlen(a);
puts(a);
return 0;
}
108-输出一个菱形图
#include<stdio.h>
int main(void)
{
int t;
scanf("%d",&t);
int n=t/2+1;
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
printf("*");
if(i>1)
{
for(j=1;j<=2*(i-1)-1;j++)
printf(" ");
printf("*");
}
printf("\n");
}
for(i=1;i<=n-1;i++)
{
for(j=1;j<=i;j++)
printf(" ");
printf("*");
if(i!=n-1)
{
for(j=1;j<=2*(n-1-i)-1;j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
}
return 0;
}
109-统计其中有多个单词
#include<stdio.h>
int main(void)
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
{
if(!( (c>= 'a' && c<= 'z') || (c>= 'A' && c<= 'Z') )|| c== ' ')
{
word=0;
}
else if(word==0)
{
word=1;
num++;
}
}
printf("%d",num);
return 0;
}
111-用筛选法求100之内的素数
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,j,n,a[101];
for(i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for(i=2;i<=sqrt(100);i++)
{
for(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("%5d",a[i]);
n++;
}
if(n==10)
{
printf("\n");
n=0;
}
}
return 0;
}
112-用选择法对10个整数排序
#include<stdio.h>
int main(void)
{
int i,a[10],t,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
113-求一个3*3的整数矩阵的对角线之和
#include<stdio.h>
int main(void)
{
int sum,a[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
sum += a[i][i];
printf("%d",sum);
return 0;
}
114-有一个已排序好的数组,要求输入一个数后,按原来排序的规律将它插入数组中
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
int a[n+10],i,j,t1,t2;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int num;
scanf("%d",&num);
if(num>a[n])
a[n+1]=num;
else
{
for(i=n;num<a[i];i--)
{
a[i+1]=a[i];
}
a[i+1]=num;
}
for(i=1;i<=n+1;i++)
printf("%d ",a[i]);
return 0;
}
115-插入排序
#include<stdio.h>
int main(void)
{
int a[10]={0,3,2,4,1,8};
int i,j;
for(i=2;i<=6;i++)
{
if(a[i]<a[i-1])
{
a[0]=a[i];
for(j=i-1;a[0]<a[j];j--)
a[j+1]=a[j];
a[j+1]=a[0];
}
}
for(i=1;i<=5;i++)
printf("%d ",a[i]);
return 0;
}
116-折半插入排序
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
int a[n+10],low,high,mid,i,j;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=2;i<=n;i++)
{
a[0]=a[i];
low = 1,high=i-1;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]>a[0])
high = mid-1;
else
low = mid+1;
}
for(j=i-1;j>=high+1;j--)
a[j+1]=a[j];
a[high+1]=a[0];
}
for(i=1;i<=n;i++)
printf("%d ",a[i]);
}
117-去重之后按升序排序
#include<stdio.h>
int main(void)
{
int n,m;
scanf("%d%d",&n,&m);
int a[n],b[m],c[n+m],i,j,t;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
c[i]=a[i];
}
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
c[n+i]=b[i];
}
for(i=0;i<n+m-1;i++)
{
for(j=i+1;j<m+n;j++)
{
if(c[i]>c[j])
{
t=c[i];
c[i]=c[j];
c[j]=t;
}
}
}
for(i=0;i<n+m;i++)
{
if(i==0)
printf("%d ",c[0]);
else
{
if(c[i]!=c[i-1])
printf("%d ",c[i]);
}
}
return 0;
}
118-去重之后升序排序
#include<stdio.h>
int main(void)
{
char a[10],b[10];
int c[20],d[20],i,j,k=0,m=0,t;
scanf("%s",a);
scanf("%s",b);
for(i=0;a[i]!='\0';i++)
{
c[k]=a[i]-'0';
k++;
}
for(i=0;b[i]!='\0';i++)
{
c[k]=b[i]-'0';
k++;
}
for(i=0;i<k-1;i++)
{
for(j=i+1;j<k;j++)
{
if(c[i]==c[j] &&c[i]!=-1 && c[j]!=-1)
c[j]=-1;
}
}
for(i=0;i<k;i++)
{
if(c[i]!=-1)
{
d[m]=c[i];
m++;
}
}
for(i=0;i<m-1;i++)
{
for(j=0;j<m-1-i;j++)
{
if(d[j]>d[j+1])
{
t=d[j];
d[j]=d[j+1];
d[j+1]=t;
}
}
}
for(i=0;i<m;i++)
printf("%d ",d[i]);
return 0;
}
|