(1)寫壹個函數!
鍵盤輸入若幹行,空行為輸入結束, 輸出這些行到壹個外部文件。
(2)寫壹個函數!從壹個數據文件裏讀入所有行,並寫到
輸出文件裏,然後 把字計數(數字個數,總字符個數包括空白)打印出來。
#include <stdio.h>
#include <stdlib.h>
void read_kb_and_out()
{
FILE *fout;
char one_line[120];
int len;
fout = fopen("aaa.txt","w");
while ( fgets(&one_line[0],120,stdin) ){
fprintf(fout,"%s",one_line);
len = strlen(one_line);
if ( len <= 1) break;
}
fclose(fout);
}
void read_file_and_out()
{
FILE *fin,*fout;
char one_line[120];
int len,i,n=0,m=0;
fin = fopen("aaa.txt","r");
fout = fopen("bbb.txt","w");
while ( fgets(&one_line[0],120,fin) !=NULL ){
fprintf(fout,"%s",one_line);
len = strlen(one_line);
for (i=0;i<len;i++) {
m = m + 1;
if (one_line[i] >= '0' && one_line[i] <= '9') n= n + 1;
};
}
fclose(fin);fclose(fout);
printf("output in bbb.txt\n");
printf("digits: %d total chars: %d\n",n,m);
}
void main()
{
read_kb_and_out();
read_file_and_out();
}
再給 fractional powers。
命令行參數 p1 p2 p3 例如:
prog.exe 2 1 3
#include <math.h>
void main(int argc,char * argv[])
{
int p1,p2,p3;
int i,j,k;
long int v;
float f;
if (argc <= 3) { printf("\007Usage: %s p1 p2 p3\n",argv[0]);
printf("For example: %s 2 1 3\n",argv[0]);
exit(0);};
sscanf(argv[1],"%d",&p1);
sscanf(argv[2],"%d",&p2);
sscanf(argv[3],"%d",&p3);
for (i=p2;i<=p3;i++){
v = pow(p1,i);
f = 1.0 /v;
printf("%d 1/%ld %f\n",i,v,f);
};
}
結果:
1 1/2 0.500000
2 1/4 0.250000
3 1/8 0.125000
prog.exe 3 2 5
結果:
2 1/9 0.111111
3 1/27 0.037037
4 1/81 0.012346
5 1/243 0.004115
再給: 讀N數據 x,y, 打出 x y z, z = x * y
並打出 z 的總和的平方根
#include <math.h>
void main()
{
int i,n;
float x[50],y[50],z[50];
float sum=0.0;
printf("Enter n\n");
scanf("%d",&n);
for (i=0;i<n;i++){
printf("Enter x%d y%d\n",i,i);
scanf("%f %f",&x[i],&y[i]);
};
for (i=0;i<n;i++) {
z[i] = x[i] * y[i];
sum = sum + z[i];
printf("%f %f %f\n",x[i],y[i],z[i]);
};
printf("%f \n",sqrt(sum));
}