关于C语言程序设计的几道题。学霸们帮一下忙吧。
2.输入8个整数,用选择排序法将他们由大到小排序输出。
3.假设存在数组a:
int a[10]={-12,5,25,33,45,56,76,96,110,115};从键盘输入一个数,用折半查找法判定 该数是否在数组中。若在,输出所在序号,若不在,输出相应信息。
4.输出n行杨辉三角形。(n由用户输入,切不超过10行)
5.写程序将一个3行4列deep二维数组转置。(数组元素的值由键盘输入)
6.判断一个字符串是否为回文。
PS:
第五题 不是“deep” 是“的”,不好意思。手残,打错了。
一切都以图片为主哈。 展开
第六题:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
gets(str);
int t=strlen(str);
for(int i=0;i<=t/2;i++)
if(str[i]!=str[t-i-1])
{
printf("所输入的字符串不是回文字符串\n");
return 0;
}
printf("所输入的字符串是回文字符串\n");
}
第五题:
#include <stdio.h>
#include <string.h>
int main()
{
int a[3][4];
int b[4][3];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
printf("转置后的数组为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%3d",b[i][j]);
printf("\n");
}
}
第四题:
#include <stdio.h>
#include <string.h>
int main()
{
int a[15][15]={1};
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
第三题:
#include <stdio.h>
#include <string.h>
int main()
{
int a[10]={-12,5,25,33,45,56,76,96,110,115};
int n;
scanf("%d",&n);
int k=4;
for (int i=0;i<10;i++)
{
if(a[k]==n)
{
printf("%d是该数组的第 %d个数\n",n,k+1);
return 0;
}
else if(a[k]>n)
k=k/2;
else
k=(10+k)/2;
}
printf("数组中无%d这个数\n",n);
}
第二题:
#include <stdio.h>
int main()
{
int a[8];
for(int i=0;i<8;i++)
scanf("%d",&a[i]);
int max,temp;
for(i=0;i<7;i++)
{
max=i;
for(int j=i+1;j<8;j++)
if(a[max]<a[j])
max=j;
temp=a[i],a[i]=a[max];a[max]=temp;
}
printf("排序后的数为:\n");
for(i=0;i<8;i++)
printf("%3d",a[i]);
printf("\n");
}
第一题:
#include <stdio.h>
int main()
{
int a[10];
float average=0,sum=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
average=sum/10;
int max,temp;
for(i=0;i<9;i++)
{
max=i;
for(int j=i+1;j<10;j++)
if(a[max]<a[j])
max=j;
temp=a[i],a[i]=a[max];a[max]=temp;
}
printf("最高分是:%d\t最低分是%d\n",a[9],a[0]);
printf("平均分是%g\n",average);
printf("高于平均分的分数为:\n");
for(i=0;i<10;i++)
if(a[i]>average)
printf("%4d",a[i]);
printf("\n");
}
就当做是我复习吧 楼主还有疑问吗?