题目:
1.定义一个int类型的二维数组,里面只能存储正整数,求第二大值,输出最大值以及行号和列号
2.从终端中输入一串字符以'\n'结尾,计算小写字符的个数,分别有多少个。
例如 aaAcF123---->结果 a有2个 c有1个
3.终端输入一个位置,要求从指定位置插入
char dest[30] = "12345";
例子:n=0-->abc12345 n=1--> 1abc2345 n=3-->123abc45
1)用辅助数组
2)只用一个数组实现
4.终端输入数组,实现冒泡排序和选择排序的代码。
代码:
#include<stdio.h>
#include<string.h>
int main(int argc, const char *argv[])
{
/******题目一*******/
#if 0
int a[2][4]={{23,6,87,54},{1,33,0,22}};
int max_h=0,max_l=0;
int max2_h=0,max2_l=0;
int temp;
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
if(a[i][j]>a[max_h][max_l])
{
max_h=i;
max_l=j;
}
}
}
printf("最大值为:%d;行标:%d;列标:%d\n",a[max_h][max_l],max_h,max_l);
for(int i=0;i<2;i++)
{
for(int j=0;j<4;j++)
{
if(i==max_h&&j==max_l)continue;
if(a[i][j]>a[max2_h][max2_l])
{
max2_h=i;
max2_l=j;
}
}
}
printf("第二大值为:%d;行标:%d;列标:%d\n",a[max2_h][max2_l],max2_h,max2_l);
#endif
/******题目二*******/
#if 0
int a[32]={0};
char str[32];
int i=0;
gets(str);
while(str[i])
{
if(str[i]>='a'&&str[i]<='z')a[str[i]-'a']++;
i++;
}
for(int i=0;i<32;i++)
{
if(a[i]>0)printf("%c有%d个\n",'a'+i,a[i]);
}
#endif
/******题目三*******/
#if 0
char s1[32]="12345";
char s2[4]="abc";
int n;
printf("从下标:");
scanf("%d",&n);
printf("位置插入\n");
for(int i=4;i>=n;i--)s1[i+3]=s1[i];
for(int j=0;j<3;j++)s1[n+j]=s2[j];
s1[8]='\0';
puts(s1);
#endif
/******题目四*******/
#if 1
int a[10];
int len=10;
int temp,max;
printf("请输入数据:");
printf("\n");
for(int i=0;i<len;i++)scanf("%d",&a[i]);
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-i-1;j++)
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("冒泡排序结果:");
for(int i=0;i<len;i++)printf("%-4d",a[i]);
printf("\n");
printf("请输入数据:");
printf("\n");
for(int i=0;i<len;i++)scanf("%d",&a[i]);
for(int i=0;i<len-1;i++)
{
max=i;
for(int j=i;j<len;j++)
{
if(a[j]>a[max])max=j;
}
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
printf("选择排序结果:");
for(int i=0;i<len;i++)printf("%-4d",a[i]);
printf("\n");
#endif
return 0;
}
运行结果:
结果一:
ubuntu@ubuntu:~$ gcc day5.c -o day5
ubuntu@ubuntu:~$ ./day5
最大值为:87;行标:0;列标:2
第二大值为:54;行标:0;列标:3
ubuntu@ubuntu:~$
结果二:
ubuntu@ubuntu:~$ ./day5
aaAFcce123 agSE
a有3个
c有2个
e有1个
g有1个
结果三:
ubuntu@ubuntu:~$ ./day5
从下标:2
位置插入
12abc345
ubuntu@ubuntu:~$ ./day5
从下标:5
位置插入
12345abc
结果四:
ubuntu@ubuntu:~$ ./day5
请输入数据:
1 2 3 4 5 6 7 8 9 10
冒泡排序结果:10 9 8 7 6 5 4 3 2 1
请输入数据:
1 2 3 4 5 6 7 8 9 10
选择排序结果:10 9 8 7 6 5 4 3 2 1