|
大小: 2089
备注:
|
← 于2008-02-23 15:34:09修订的的版本10 ⇥
大小: 5374
备注: converted to 1.6 markup
|
| 删除的内容标记成这样。 | 加入的内容标记成这样。 |
| 行号 2: | 行号 2: |
| {{{ | {{{#!cplusplus /*sample code*/ char *find(char *s, int c) { for(;*s!='\0';s++) if(*s==c) return s; return NULL; } }}} {{{ int find(char s[], int c) { int i; for(i = 0; s[i]!='\0'; i++) s[i]!=c; return i; } return 0; } find(char s[], char c) { int i; for(i=0; s[i] != '\0';) { if(s[i] = c) return c; else i++; } return NULL; } |
| 行号 42: | 行号 71: |
| int find(char s[], int c) { int i; for(i = 0; s[i]!='\0'; i++) s[i]!=c; return i; } return 0; } |
|
| 行号 61: | 行号 81: |
| char *find(char *s, int c) { while(*s!='\0') if(*s==c) return s; return NULL; } |
|
| 行号 72: | 行号 85: |
| {{{#!cplusplus /*sample code*/ int transpose(int a[N][N]) { int i, j; for(i=0; i<N; i++) { for(j=i+1; j<N; j++) { int temp = a[i][j]; a[i][j] = a[j][i]; a[j][i] = temp; } } } }}} {{{ int transpose(int a[N][N]) { int i, j, temp; for(i = 0; i < N; i++) for(j = 0; j < N; j++) { temp = s[i][j]; s[i][j] = s[j][i]; s[j][i] = temp; } } int transpose(int a[N][N]) { int i, j, b; for(i = 0; i < N; i++) for(j = 0; j < i; j++) { b= a[i][j]; a[i][j] = a[j][i]; a[j][i] = b; } } int transpose(int a[N][N]) { int i, j; for(i=0; i<N-1; i++) for(j=0; j<N-1; j++) a[i][j] = a[j][i]; } }}} |
|
| 行号 74: | 行号 130: |
| {{{#!cplusplus /*sample code*/ struct complex { double real; double imag; }; struct complex add(struct complex c1, struct complex c2) { c1.real += c2.real; c1.imag += c2.imag; return c1; } }}} {{{ struct complex { int i; int j; } c1, c2; struct complex add(struct complex c1, struct complex c2) { c1.i += c2.i; c1.j += c2.j; return c1; } struck complex{ int a; int i; } c1, c2; struck complex add(struck complex c1, struck complex c2) { struck complex c3; c3->a = c1->a + c2->a; c3->i = c1->i + c2->i; return struck complex c3; } }}} |
|
| 行号 77: | 行号 176: |
| /*sample code*/ | |
| 行号 91: | 行号 191: |
| {{{#!cplusplus int isnotalnum(int c) { return !isdigit(c) && !isalpha(c); } }}} {{{ void isnotalnum(char s[]) { int i, j; for(i=j=0; s[i] != '\0'; i++) if(isalnum(s[i])) s[j++] = s[i]; s[j] = '\0'; } int isnottalnum(int c) { if(c>='0' || c=<'9') return 1; else if(c>='a' || c<='z') return 1; else if(c>='A' || c<=Z) return 1; else return -1; } }}} |
|
| 行号 92: | 行号 223: |
| {{{#!cplusplus /*sample code*/ #include <stdio.h> int main(int argc, char *argv[]) { int i, max = 1; for(i = 2; i < argc; i++) if(strcmp(argv[i], argv[max])>0) max = i; if( max < argc) printf("%s", argv[i]); } }}} {{{ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i, j; i = 1; while(i<argc) { for(j=i; j<argc;j++) { if(strcmp(argv[i], [j])<0) i = j; break; } return i; } printf("%s", argv[i]); } int main(int argc, char *argv[]) { if(argc > 1) qsort(v, 1, argc); printf("%s", argv[argc-1]); printf("\n"); return 0; } int main(int argc, char *argv[]) { int i; char *t; if(argc!=1) { t = argv[1]; for(i=2; i<argc; i++) { if(strcmp(t,argv[i])<0 ) t = argv[i]; } printf("%s", t); } } #define MAX 500 int main(int argc, char *argv[]) { char s[MAX]; strcpy(s, argv[1]); int i; while(i=2; i<argc-1; i++) if(strcmp(s, argv[i]) <0) strcpy(s, argv[i]); if(argc != 1) printf("%s", s); return 0; } }}} |
1. 编写一个函数find(s,c),在给定字符串s中查找字符c,返回c在s中第一次出现时所在的地址。如果找不到,返回NULL。
int find(char s[], int c) {
int i;
for(i = 0; s[i]!='\0'; i++)
s[i]!=c;
return i;
}
return 0;
}
find(char s[], char c)
{
int i;
for(i=0; s[i] != '\0';) {
if(s[i] = c)
return c;
else i++;
}
return NULL;
}
void find(s, c) {
int *p;
while((s=getchar())!=EOF) {
for(p=0; *p!=c; p++)
if *p = c
return p;
else
return NULL;
}
}
void find(char s[], c) {
int i, j;
for(i=0; i<j; i++) {
s[i] = c;
i++;
}
return NULL;
}
int find(char s[], int c, int i) {
int c, i;
char s[];
for(i = 0; s[i] !='\0'; i++);
if(i==c);
return i;
else
return NULL
}
void find(char *s, char c) {
for(; *s!='\0'; s++){
if(*s==c)
return s;
else
return NULL;
}
}
int find(char s[], char c[]) {
int i, j;
for(i=0; i!='\0'; i++) {
for(j=i; s[j]==c[k]; j++,k++);
if(c[k] ='\0' && k>0)
return i;
}
return NULL;
}1. 写一个函数transpose(a)转置方阵a。a是一个N行N列的二维数组。N为常数。
int transpose(int a[N][N]) {
int i, j, temp;
for(i = 0; i < N; i++)
for(j = 0; j < N; j++) {
temp = s[i][j];
s[i][j] = s[j][i];
s[j][i] = temp;
}
}
int transpose(int a[N][N]) {
int i, j, b;
for(i = 0; i < N; i++)
for(j = 0; j < i; j++) {
b= a[i][j];
a[i][j] = a[j][i];
a[j][i] = b;
}
}
int transpose(int a[N][N])
{
int i, j;
for(i=0; i<N-1; i++)
for(j=0; j<N-1; j++)
a[i][j] = a[j][i];
}1. 写出表示复数(包含实部和虚部)的结构体complex。写出复数的加法运算add(c1, c2),c1和c2为两个复数,add返回一个复数为c1与c2的和。
struct complex {
int i;
int j;
} c1, c2;
struct complex add(struct complex c1, struct complex c2)
{
c1.i += c2.i;
c1.j += c2.j;
return c1;
}
struck complex{
int a;
int i;
} c1, c2;
struck complex add(struck complex c1, struck complex c2)
{
struck complex c3;
c3->a = c1->a + c2->a;
c3->i = c1->i + c2->i;
return struck complex c3;
}1. 给定strfilter函数,给定main函数,请写isnotalnum函数,使得程序能够删除字符串中非数字非英文字母的字符。
void isnotalnum(char s[]) {
int i, j;
for(i=j=0; s[i] != '\0'; i++)
if(isalnum(s[i]))
s[j++] = s[i];
s[j] = '\0';
}
int isnottalnum(int c)
{
if(c>='0' || c=<'9')
return 1;
else if(c>='a' || c<='z')
return 1;
else if(c>='A' || c<=Z)
return 1;
else
return -1;
}1. 写一个程序,输出所有命令行参数中最大的一个。比如程序名字为max,输入命令max aa cc dd bb运行程序,程序输出dd。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i, j;
i = 1;
while(i<argc) {
for(j=i; j<argc;j++) {
if(strcmp(argv[i], [j])<0)
i = j;
break;
}
return i;
}
printf("%s", argv[i]);
}
int main(int argc, char *argv[]) {
if(argc > 1)
qsort(v, 1, argc);
printf("%s", argv[argc-1]);
printf("\n");
return 0;
}
int main(int argc, char *argv[]) {
int i;
char *t;
if(argc!=1) {
t = argv[1];
for(i=2; i<argc; i++) {
if(strcmp(t,argv[i])<0 )
t = argv[i];
}
printf("%s", t);
}
}
#define MAX 500
int main(int argc, char *argv[]) {
char s[MAX];
strcpy(s, argv[1]);
int i;
while(i=2; i<argc-1; i++)
if(strcmp(s, argv[i]) <0)
strcpy(s, argv[i]);
if(argc != 1)
printf("%s", s);
return 0;
}