printf("%7.2f",*paver);
printf("\n");
}
运行后输出的结果是:
生成的矩阵是:
5127445099
7458286284
4575719771
5135726746
9134427332
各行元素的平均值是:
54.2061.2071.8054.2054.40
上机作业题之十九
从键盘上读入一个串,然后将串中序号为奇数的字符留在串中,把序号为偶数的字符拷贝到另一个串中。
输出处理后的两个串。
要求全部采用指针访问。
参考程序之一:
#include
#include
#include
voidmain()
{chara[80],b[40],*p1=a,*p2=b;
intflag=0;
puts("读入一个串!
");
gets(p1);
puts("原来的串是:
");
puts(p1);
while(*p1)
if(flag==0)
{flag=1;
p1++;
continue;
}
else
{flag=0;
*p2++=*p1;
strcpy(p1,p1+1);
}
*p2='\0';
printf("分解后的两个串是:
\n");
puts(a);
puts(b);
}
参考程序之二:
#include
#include
#include
voidmain()
{chara[80],b[40],*p1=a,*p2=b;
puts("读入一个串!
");
gets(p1);
puts("原来的串是:
");
puts(p1);
while(*p1)
{p1++;
if(!
*p1)break;
*p2++=*p1;
strcpy(p1,p1+1);
}
*p2='\0';
printf("分解后的两个串是:
\n");
puts(a);
puts(b);
}
运行时屏幕上显示:
读入一个串!
若输入:
a1b2c3d4e5f回车
则输出的结果是:
原来的串是:
a1b2c3d4e5f
分解后的两个串是:
abcdef
12345
上机作业题之二十
从命令行上提供一个9位的长整型数,求它的逆序数并输出。
如提供的是123456,则它的逆序数是654321。
参考程序之一如下:
#include
#include
voidmain(intargc,char*argv[])
{longa,b=0;
if(argc==1)
{puts("Notdata!
");
return;
}
printf("%ld\n",a=atol(argv[1]));
while(a)
{b=b*10+a%10;
a/=10;
}
printf("%ld\n",b);
}
参考程序之二如下:
#include
#include
#include
voidmain(intargc,char*argv[])
{char*p1,*p2,ch;
if(argc==1)
{puts("Notdata!
");
return;
}
printf("%ld\n",atol(argv[1]));
for(p1=argv[1],p2=argv[1]+strlen(argv[1])-1;p2>p1;p1++,p2--)
{ch=*p1;
*p1=*p2;
*p2=ch;
}
printf("%ld\n",atol(argv[1]));
}
该程序在TC3上运行。
若提供的参数是123456789,则输出的结果是:
123456789
987654321