C语言编程(高分)
发布网友
发布时间:2022-05-06 04:06
我来回答
共2个回答
热心网友
时间:2022-06-28 16:40
以下代码都已经过调试 ^_^
题1:从键盘输入一个字符串a(主函数完成),并在a字符串中的最大元素后边插入字符串“TR”(子函数完成),
最后从主函数输出结果。
#include <stdio.h>
#include <string.h>
void sub(char a[])
{
int i,len;
int max=-1000,maxi;
len=strlen(a);
/*找最大值的位置*/
for (i=0;i<len;i++)
if (a[i]>max) {max=a[i];maxi=i;}
/*插入“TR”*/
for (i=len+2;i>maxi;i--)
a[i]=a[i-2];
a[maxi+1]='T';a[maxi+2]='R';
return;
}
int main()
{
char str[1000];
scanf("%s",str);
sub(str);
printf("%s",str);
}
题2:从键盘输入3名学生的4门课成绩,要求找出4门课平均成绩最高者,并输出。
#include <stdio.h>
#include <string.h>
int main()
{
int x[3][4];
int i,maxi;
float max=-100,tmp;
for (i=0;i<3;i++)
{
scanf("%d%d%d%d",&x[i][0],&x[i][1],&x[i][2],&x[i][3]);
tmp=(float)(x[i][0]+x[i][1]+x[i][2]+x[i][3])/4;
if (tmp>max) {max=tmp;maxi=i;}
}
printf("The max:%d %d %d %d,the average score is %.2f\n",x[maxi][0],x[maxi][1],x[maxi]
[2],x[maxi][3],max);
}
题3:数组a包含10个整数,要求将其中的奇数放入另一数组中,并按降序输出。
#include <stdio.h>
#include <string.h>
int main()
{
int a[10],b[10];
int i,j,s;
int t,ti,tmp;
/*输入数组a的10个数据*/
for (i=0;i<10;i++)
scanf("%d",&a[i]);
/*选取a[]中的奇数放到b[]中,并用s记录奇数的个数*/
for (i=0,s=0;i<10;i++)
if (a[i]%2) b[s++]=a[i];
/*选择排序*/
for (i=0;i<s-1;i++)
{
ti=i;
for (j=i+1;j<s;j++)/*选出未排序的数据中的最大值的位置*/
if (b[ti]<b[j]) ti=j;
if (ti!=i) {tmp=b[ti];b[ti]=b[i];b[i]=tmp;}/*当前未排序的第一个数和最大值交换*/
}
/*输出*/
for (i=0;i<s;i++)
printf("%d ",b[i]);
}
题4:数组a包含10个整数,要求将其中的偶数放入另一数组中,并按升序输出。
#include <stdio.h>
#include <string.h>
int main()
{
int a[10],b[10];
int i,j,s;
int t,ti,tmp;
/*输入数组a的10个数据*/
for (i=0;i<10;i++)
scanf("%d",&a[i]);
/*选取a[]中的偶数放到b[]中,并用s记录偶数的个数*/
for (i=0,s=0;i<10;i++)
if (a[i]%2==0) b[s++]=a[i];
/*选择排序*/
for (i=0;i<s-1;i++)
{
ti=i;
for (j=i+1;j<s;j++)/*选出未排序的数据中的最小值的位置*/
if (b[ti]>b[j]) ti=j;
if (ti!=i) {tmp=b[ti];b[ti]=b[i];b[i]=tmp;}/*当前未排序的第一个数和最小值交换*/
}
/*输出*/
for (i=0;i<s;i++)
printf("%d ",b[i]);
}
题5:从键盘输入一个字符串a,并在a字符串中的最大元素后边插入字符串“TR”。
#include <stdio.h>
#include <string.h>
int main()
{
int i,len;
int max,maxi;
char str[1000];
scanf("%s",str);
len=strlen(str);
/*找最大值的位置*/
for (max=-1000,i=0;i<len;i++)
if (str[i]>max) {max=str[i];maxi=i;}
/*插入“TR”*/
for (i=len+2;i>maxi;i--)
str[i]=str[i-2];
str[maxi+1]='T';str[maxi+2]='R';
printf("%s",str);
}
题6:从键盘输入一个字符串a,并在a字符串中的最小元素前边插入字符串“GO”。
#include <stdio.h>
#include <string.h>
int main()
{
int i,len;
int min,mini;
char str[1000];
scanf("%s",str);
len=strlen(str);
/*找最小值的位置*/
for (min=1000,i=0;i<len;i++)
if (str[i]<min) {min=str[i];mini=i;}
/*插入“GO”*/
for (i=len+2;i>=mini;i--)
str[i]=str[i-2];
str[mini]='G';str[mini+1]='O';
printf("%s",str);
}
题7:从键盘输入一个字符串a,将其中的数字字符转换成相应的整数并同时将其中的小写英文字母转换成大写字
母输出。
#include <stdio.h>
#include <string.h>
int main()
{
int i;
char str[1000];
scanf("%s",str);
for (i=0;i<strlen(str);i++)
{
if (str[i]>='0'&&str[i]<='9') printf("%d",str[i]-'0');/*输出数字*/
else if (str[i]>='a'&&str[i]<='z') printf("%c",str[i]-('a'-'A'));/*小写转大写输出
*/
else printf("%c",str[i]);/*输出其他字符*/
}
}
题8:从键盘输入一个整数a(如786),将其转换成相应的字符输出。
#include <stdio.h>
#include <string.h>
int main()
{
int i,a;
char tmp[20];
scanf("%d",&a);
/*转化*/
for (i=0;a>0;a/=10)
tmp[i++]=a%10+'0';
/*输出*/
for (i--;i>=0;i--)
printf("%c",tmp[i]);
}
热心网友
时间:2022-06-28 16:40
我可以帮你做,但是你所说的字符串最小(最大)元素指的什么?ASCII码最小的数字还是什么?