有C语言厉害的吗,帮忙解决一个学习中C语言的编程问题,在线等。会的加qq649800266

在上述项目内建立一个名称为“main.c”的程序文件,程序内容如下;
#include<stdio.h>
#include<stdlib.h>
void main(void)
{
int x;
FILE* f1; //定义一个文件指针
f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件
if (f1==NULL) { //当f1对应的文件没有建立和打开时则退出运行
printf("不能够打开文件!\n");
exit(1);
}
printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n");
scanf("%d",&x); //从键盘读入一个整数
while(x!=0) { //对每个有效地整数进行处理
int i=0, d[6];
if(x<0) { //若为负数则向文件写入一个负号
fputc('-', f1); x=-x;
}
while(x/10!=0) { //用d数组保存整数中的每个数字位
d[i++]=x%10; x=x/10;
}
fputc(48+x, f1); //把整数的最高位数字写入文件中
while(--i>=0) //依次把整数的后续每位数字写入文件中
fputc(48+d[i], f1);
fputc(' ', f1); //每个整数后写入一个空格
scanf("%d",&x); //再从键盘读入一个整数
}
fclose(f1); //关闭f1所对应的data.txt文件
}
4、修改上述程序,使得从键盘输入到数据文件中的数据内容,每隔3个整数后增加一个换行;
提示:在int x语句后,增加一条定义变量的语句,用该变量记录从键盘上输入的整数个数;在fputc(' ', f1)语句后,增加一条条件语句,用来记数和控制输出换行符。
5、编译、连接和运行上述经修改后的程序,要求从键盘上输入至少10个整数。

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int x;
int c = 0;
FILE* f1; //定义一个文件指针
f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件
if (f1==NULL) { //当f1对应的文件没有建立和打开时则退出运行
printf("不能够打开文件!\n");
exit(1);
}
printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n");
scanf("%d",&x); //从键盘读入一个整数
while(x!=0) { //对每个有效地整数进行处理
int i=0, d[6];
if(x<0) { //若为负数则向文件写入一个负号
fputc('-', f1); x=-x;
}
while(x/10!=0) { //用d数组保存整数中的每个数字位
d[i++]=x%10; x=x/10;
}
fputc(48+x, f1); //把整数的最高位数字写入文件中
while(--i>=0) //依次把整数的后续每位数字写入文件中
fputc(48+d[i], f1);
fputc(' ', f1); //每个整数后写入一个空格
if((++c)%3==0)
fputc('\n',f1);
scanf("%d",&x); //再从键盘读入一个整数
}
fclose(f1); //关闭f1所对应的data.txt文件
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-14
#include<stdio.h>
#include<stdlib.h>
void main(void)
{
int x;
FILE* f1; //定义一个文件指针
f1=fopen("data.txt","w"); //在程序所在项目内建立一个空文件
if (f1==NULL) { //当f1对应的文件没有建立和打开时则退出运行
printf("不能够打开文件!\n");
exit(1);
}
printf("从键盘向数据文件输入一批整数,直到输入0时结束!\n");
scanf("%d",&x); //从键盘读入一个整数
int z=0; //用来记数当前输入的是第几个有效数
while(x!=0) { //对每个有效地整数进行处理
int i=0, d[6];
//==================
//判断是否是3的倍数,是的话就该换行了,注意这里是从0开始算的,为3的倍数时已经是第四个数了
因此刚好在对第四个数做操作之前写入空格,另外排除为0的情况
if( z!=0 && z%3==0) //z%3是用z除以3求余数 如果等于0就证明是三的倍数就需要空行了
{
fputc(10, f1); fputc(13, f1);
//换行的ascii码是10 回车的ascii码是13 两个都加上,如果非要纠结换行效果就去掉fputc(13, f1);
}
z++;//得到一个有效数时计数器+1
//===================
//注:代码写在这里和写在你老师给你的提示处是一样的效果,写在那里的话计数器+1的代码要写在做回车换行操作的前面
if(x<0) { //若为负数则向文件写入一个负号
fputc('-', f1); x=-x;
}
while(x/10!=0) { //用d数组保存整数中的每个数字位
d[i++]=x%10; x=x/10;
}
fputc(48+x, f1); //把整数的最高位数字写入文件中
while(--i>=0) //依次把整数的后续每位数字写入文件中
fputc(48+d[i], f1);
fputc(' ', f1); //每个整数后写入一个空格
scanf("%d",&x); //再从键盘读入一个整数
}
fclose(f1); //关闭f1所对应的data.txt文件
}
//注释写的很详细了,足够应付你老师的各种盘问,我是专业人士....专业应付老师,专业代写毕业设计...
第2个回答  2012-05-14
重涵数速查手册中可知 scantf ()与printf()有个返回值。n=scantf("%d %d" ,&a,&b)与n=scantf("%d ,&b"");可看出n的值......自已调,加个if()来控制,你可以现实你想要的.............本回答被提问者采纳
第3个回答  2012-05-14
呵呵 只会 会VB 易语言
第4个回答  2012-05-14
你找一下你的数学老师吧
相似回答