X 我知道了TIPS:左右滑动导航栏可以查看更多栏目
(1)以“@”为字符,打印一个正三角形。(2)编程,求一个N×N矩阵中,行下标与列下标之和为偶数的元素之和。(3)求s=1-2+3-4+5……+N(4)从键盘上任意输入一个字符串S,输出其中的字母字符。(5)函数void dele(char *s)的功能是删除字符串s中的所有数字字符,并将字符串压缩。(6)将字符串str中的数字字符放入d数组中,最后输出d中的字符串。(7)函数int add(int a[N][N] , int b[N])的功能是将a数组中每行的最大元素放入b数组中,编写该函数实现之。
>> 本文固定链接: http://www.vcgood.com/archives/309
>> 转载请注明: cboy 2006年01月04日 于 C语言帝国 发表
1.文本模式下不可能打印一个标准的正三角形,顶多打印一个近似的正三角形
int row = 10;//边的长度,可以在程序中定义,也可以让用户输入 int i = 0; int j = 0; for (i=0; i<row; i++) { for (j=(row – i -1); j>0; j–) { cout<<’ ‘; }
for (j=0; j<=i; j++) { cout<<”@ “; }
cout<<endl; }
2.
int matrix[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i = 0;//行下标 int j = 0;//列下标 int sum = 0;//结果
for (i=0; i<3; i++) { for (j=0; j<3; j++) { if ( (i+j)%2 == 0 ) { sum += matrix[i][j]; } } }
cout << sum << endl;
3.递归
int f(int x){ if (x == 1) { return 1; } else { return ((int)pow(-1, x+1) * x) + f(x – 1) ; }}
4.
char * getalpha(char ch[]){ char *rst = new char[strlen(ch)]; int pos = 0; int i = 0;
for (i=0; i < (int)strlen(ch); i++) { if ((ch[i]>65 && ch[i]<90) || (ch[i]>97 && ch[i]<122)) { rst[pos] = ch[i]; pos++; } }
rst[pos] = ‘\0′;
return rst;}
5.
void getalpha(char ch[]){ char *rst = new char[strlen(ch)]; int pos = 0; int i = 0;
for (i=0; i < (int)strlen(ch); i++) { if (ch[i]<48 || ch[i]>57) { rst[pos] = ch[i]; pos++; } }
strcpy(ch,rst);}
6.
void getdigit(char *des,char *ch){ int pos = 0; int i = 0;
for (i=0; i < (int)strlen(ch); i++) { if (ch[i]>=48 && ch[i]<=57) { des[pos] = ch[i]; pos++; } }
des[pos] = ‘\0′;}
7.
void add(int a[5][5] , int b[5]){ int max = 0;//存放最大值 int i = 0; int j = 0;
for (i=0; i<5; i++) { max = a[i][0];
for (j=0; j<5; j++) { if (a[i][j] > max) { max = a[i][j]; }
}
b[i] = max; }
1、同ningweidong2、同ningweidong3、可以找到规律,这样速度会快,而且没有限制。(递规有层数限制的)[code]int foo( int nNum ){ if ( 0 == ( nNum % 2 ) ) { /* nNum为偶数 */ return -nNum / 2; } else { / * nNum为齐数 */ return (nNum + 1) / 2; }}[/code]或[code]int foo( int nNum ){ return ( nNum % 2 ) ? ( (nNum + 1) / 2 ) : ( -nNum / 2 );}[/code]4、虽然可以在函数内部分配内存,不过这样不推荐。 (当然如果有配对的函数则可以考虑这样写。)推荐改为(在函数外部准备空间):[code]char *GetAlpha( const char *strInput, char *strOutput ){ /* 判断数据有效性 */ _ASSERT( ((const char *)NULL != strInput) && ((char *)NULL != strOutput ) );
const char *strTmpInput = strInput; char *strTmpOutput = strOutput;
while ( '\0' != *strTmpInput ) { if ( (('a' <= *strTmpInput) && ('z' >= *strTmpInput)) || (('A' <= *strTmpInput) && ('Z' >= *strTmpInput)) ) { *strTmpOutput = *strTmpInput; strTmpOutput++; }
strTmpInput++; }
/* '\0' 结尾 */ *strTmpOutput = '\0';
return strOutput;}[/code]5、理由同上[code]char *GetAlpha( const char *strInput, char *strOutput ){ /* 判断数据有效性 */ _ASSERT( ((const char *)NULL != strInput) && ((char *)NULL != strOutput ) );
while ( '\0' != *strTmpInput ) { if ( (('0' > *strTmpInput) && ('9' < *strTmpInput)) ) { *strTmpOutput = *strTmpInput; strTmpOutput++; }
return strOutput;}[/code]6、7、基本同ningweidong的
3.
int n,i,sum=0;
int flag=1;
for(i=1;i<=n;i++)
{ sum=sum+flag*i;
flag=-flag;
见有人这样做~~~感觉不错~~其他不熟悉就不发言了!!
8错8错
4题
#include<stdio.h>void main(){ char ch; loop:scanf(“%c”,&ch); if(ch>64&&ch<91||ch>96&&ch<123) printf(“%c”,ch); goto loop;}
这些要好好考虑啊
你必须先 登录才能发表评论。
1.文本模式下不可能打印一个标准的正三角形,顶多打印一个近似的正三角形
int row = 10;//边的长度,可以在程序中定义,也可以让用户输入
int i = 0;
int j = 0;
for (i=0; i<row; i++)
{
for (j=(row – i -1); j>0; j–)
{
cout<<’ ‘;
}
for (j=0; j<=i; j++)
{
cout<<”@ “;
}
cout<<endl;
}
2.
int matrix[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i = 0;//行下标
int j = 0;//列下标
int sum = 0;//结果
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
if ( (i+j)%2 == 0 )
{
sum += matrix[i][j];
}
}
}
cout << sum << endl;
3.递归
int f(int x)
{
if (x == 1)
{
return 1;
}
else
{
return ((int)pow(-1, x+1) * x) + f(x – 1) ;
}
}
4.
char * getalpha(char ch[])
{
char *rst = new char[strlen(ch)];
int pos = 0;
int i = 0;
for (i=0; i < (int)strlen(ch); i++)
{
if ((ch[i]>65 && ch[i]<90) || (ch[i]>97 && ch[i]<122))
{
rst[pos] = ch[i];
pos++;
}
}
rst[pos] = ‘\0′;
return rst;
}
5.
void getalpha(char ch[])
{
char *rst = new char[strlen(ch)];
int pos = 0;
int i = 0;
for (i=0; i < (int)strlen(ch); i++)
{
if (ch[i]<48 || ch[i]>57)
{
rst[pos] = ch[i];
pos++;
}
}
rst[pos] = ‘\0′;
strcpy(ch,rst);
}
6.
void getdigit(char *des,char *ch)
{
int pos = 0;
int i = 0;
for (i=0; i < (int)strlen(ch); i++)
{
if (ch[i]>=48 && ch[i]<=57)
{
des[pos] = ch[i];
pos++;
}
}
des[pos] = ‘\0′;
}
7.
void add(int a[5][5] , int b[5])
{
int max = 0;//存放最大值
int i = 0;
int j = 0;
for (i=0; i<5; i++)
{
max = a[i][0];
for (j=0; j<5; j++)
{
if (a[i][j] > max)
{
max = a[i][j];
}
}
b[i] = max;
}
}
1、同ningweidong
2、同ningweidong
3、可以找到规律,这样速度会快,而且没有限制。(递规有层数限制的)
[code]
int foo( int nNum )
{
if ( 0 == ( nNum % 2 ) ) {
/* nNum为偶数 */
return -nNum / 2;
} else {
/ * nNum为齐数 */
return (nNum + 1) / 2;
}
}
[/code]
或
[code]
int foo( int nNum )
{
return ( nNum % 2 ) ? ( (nNum + 1) / 2 ) : ( -nNum / 2 );
}
[/code]
4、虽然可以在函数内部分配内存,不过这样不推荐。
(当然如果有配对的函数则可以考虑这样写。)
推荐改为(在函数外部准备空间):
[code]
char *GetAlpha( const char *strInput, char *strOutput )
{
/* 判断数据有效性 */
_ASSERT( ((const char *)NULL != strInput) && ((char *)NULL != strOutput ) );
const char *strTmpInput = strInput;
char *strTmpOutput = strOutput;
while ( '\0' != *strTmpInput ) {
if ( (('a' <= *strTmpInput) && ('z' >= *strTmpInput)) ||
(('A' <= *strTmpInput) && ('Z' >= *strTmpInput)) )
{
*strTmpOutput = *strTmpInput;
strTmpOutput++;
}
strTmpInput++;
}
/* '\0' 结尾 */
*strTmpOutput = '\0';
return strOutput;
}
[/code]
5、理由同上
[code]
char *GetAlpha( const char *strInput, char *strOutput )
{
/* 判断数据有效性 */
_ASSERT( ((const char *)NULL != strInput) && ((char *)NULL != strOutput ) );
const char *strTmpInput = strInput;
char *strTmpOutput = strOutput;
while ( '\0' != *strTmpInput ) {
if ( (('0' > *strTmpInput) && ('9' < *strTmpInput)) ) {
*strTmpOutput = *strTmpInput;
strTmpOutput++;
}
strTmpInput++;
}
/* '\0' 结尾 */
*strTmpOutput = '\0';
return strOutput;
}
[/code]
6、7、基本同ningweidong的
3.
int n,i,sum=0;
int flag=1;
for(i=1;i<=n;i++)
{ sum=sum+flag*i;
flag=-flag;
}
见有人这样做~~~感觉不错~~其他不熟悉就不发言了!!
8错8错
4题
#include<stdio.h>
void main()
{
char ch;
loop:scanf(“%c”,&ch);
if(ch>64&&ch<91||ch>96&&ch<123)
printf(“%c”,ch);
goto loop;
}
这些要好好考虑啊