江苏泰州在哪:关于C语言程序填空,急求.请各位帮帮忙

来源:百度文库 编辑:高校问答 时间:2024/05/08 17:12:33
以下程序功能是 从键盘上输入一字符串升序排列后输出到文件test.txt中.然后从该文件中读出字符串并显示出来.[?]为填写处
#include<stdio.h>
main()
{ FILE *fp;
char t,str[100];int n,i,j;
if((fp=fopen("test.txt"."w"))==Null)
{printf("can not open this file,\n");exit(0);}
printf("input a string:\n);gets(str);
[?]填空处
for(i=0;[?]填空处;i++)
fot(j=0;j<n-i-1;j++)
if([?]填空处)
{t=str[j];str[j]=str[j=1];str[j=1]=t;}
[?]填空处
fclose(fp);
fp=fopen("test.txt","r");
fgets(str.100.fp);
printf("%s\n",str);
flose(fp);
}
谢谢,

这不是一个很复杂的题,关键在于两点:一个是文件操作,第二个是“冒泡排序法”。楼上说这个程序结构和低效,我看不太出来,作为一道题而言这还算是规范的。

源程序如下:

#include <stdio.h>
#include <stdlib.h>
//需要添加的头文件,有的编译系统可能会自动加上。
#include <string.h>

int main(int argc, char *argv[])
{
FILE *fp;
char t,str[100];
int n,i,j;
if((fp=fopen("test.txt","w"))==NULL)
{printf("can not open this file,\n");exit(0);}
printf("input a string:\n");
gets(str);
//[?]填空处
n=strlen(str);
for(i=0;/*[?]填空处*/i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(/*[?]填空处*/str[j]>str[j+1])
{t=str[j];str[j]=str[j+1];str[j+1]=t;}
//[?]填空处
fputs(str,fp);
fclose(fp);
fp=fopen("test.txt","r");
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
system("PAUSE");
return 0;
}

鄙人好文,我觉得“薄冰待雪”这个名字挺有特色的,顺便说说。
注:上面这个程序,我在DEV-CPP上通过了。

程序结构有问题.
这种底效的题.
也不知道是谁想出来的.