c语言程序编程题,关于字符串和字符数组的。
有一个数据文件,其中存有一行字符串,将该字符串读到字符数组a中,然后将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。要求输出重新排序的整个字符串以及下标为偶数...
有一个数据文件,其中存有一行字符串,将该字符串读到字符数组a中,然后将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。要求输出重新排序的整个字符串以及下标为偶数的元素。
编写一个程序,实现其功能。 展开
编写一个程序,实现其功能。 展开
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char ch,temp;
char a[10];
int i=0,j=0;
if((fp=fopen("filename","r"))!=NULL)
printf("能打开这个数据文件!\n");
else
printf("不能打开这个数据文件");
/*将数据文件的字符串输出,并读到数组a中*/
ch=fgetc(fp);
while(ch!=EOF)
{
a[j]=ch;
printf("%c\n",ch);
ch=fgetc(fp);
i++; //字符串中字符的个数
j++;
}
printf("字符个数为:i=%d\n",i);
for(j=0;j<i;j++)
printf("%2c",a[j]);
printf("\n");
/*将字符数组a中下标值为偶数的元素从小到大排列*/
for(int k=0;k<i;k=k+2)
{
for(int h=k+2;h<i+1;h=h+2)
if(a[k]>a[h])
{
temp=a[k];
a[k]=a[h];
a[h]=temp;
}
}
/*输出重新排序的整个字符串*/
for(k=0;k<i;k++)
printf("%2c",a[k]);
printf("\n");
/*下标为偶数的元素,第一个元素的下标为0*/
for(k=0;k<i;k=k+2)
printf("%2c",a[k]);
printf("\n");
fclose(fp);
return 0;
}
有什么不了解的可以继续问我哦 ^_^
#include<stdlib.h>
int main()
{
FILE *fp;
char ch,temp;
char a[10];
int i=0,j=0;
if((fp=fopen("filename","r"))!=NULL)
printf("能打开这个数据文件!\n");
else
printf("不能打开这个数据文件");
/*将数据文件的字符串输出,并读到数组a中*/
ch=fgetc(fp);
while(ch!=EOF)
{
a[j]=ch;
printf("%c\n",ch);
ch=fgetc(fp);
i++; //字符串中字符的个数
j++;
}
printf("字符个数为:i=%d\n",i);
for(j=0;j<i;j++)
printf("%2c",a[j]);
printf("\n");
/*将字符数组a中下标值为偶数的元素从小到大排列*/
for(int k=0;k<i;k=k+2)
{
for(int h=k+2;h<i+1;h=h+2)
if(a[k]>a[h])
{
temp=a[k];
a[k]=a[h];
a[h]=temp;
}
}
/*输出重新排序的整个字符串*/
for(k=0;k<i;k++)
printf("%2c",a[k]);
printf("\n");
/*下标为偶数的元素,第一个元素的下标为0*/
for(k=0;k<i;k=k+2)
printf("%2c",a[k]);
printf("\n");
fclose(fp);
return 0;
}
有什么不了解的可以继续问我哦 ^_^
更多追问追答
追问
运行有错误,哪里有问题。
追答
我已经运行过了,在visual c++6.0运行的。没问题的
你在运行前:
得先建个名为filename的数据文件(文本文档),在里面输入几个字符,然后保存
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询