huanghuixiang 发表于 2008-6-20 08:52

麻烦各位做几题C语言编程..谢谢大家

一:不用strcpy()函数,编写一个能将一个字符串复制到一个字符数组中的程序.
二:假设10个证书存储在数组a[10]中,要求把其中能被12整除的数标记为T,其他
   标记为F.标记储存在字符数组b[10]中下标相同的对应位置.试编写程序,实现
   意识功能,并输出两个数组.
三:输入一行字符.要求删去其中某个字符后输出,要删除的字符由键盘输入. 
    呵呵..室友也卜会做..再次麻烦了 .谢谢..

漫游者李李西 发表于 2008-6-20 11:08

第一个可以用循环赋值,第二个加一个判断就可以了,第三个也是判断,假如是要删除的字符,则不将其写入数组中。

slokra 发表于 2008-6-20 11:24

数组的判断、赋值,书上应该都有例题的

zhangcheng001 发表于 2008-6-20 15:25

急求用C语言编写一个排序程序

具体类容如下:

输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。                       
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。

云寳寳 发表于 2008-6-20 15:45

根本看不懂...

无语雨季 发表于 2008-6-20 16:00

一:不用strcpy()函数,编写一个能将一个字符串复制到一个字符数组中的程序.
void copy(char *in,char *out)
{
while(*out++ = *in++)
return;
}
二:假设10个证书存储在数组a[10]中,要求把其中能被12整除的数标记为T,其他标记为F.标记储存在字符数组b[10]中下标相同的对应位置.试编写程序,实现意识功能,并输出两个数组.
void fun(int a[],char b[])
{
int i;
for(i=0;i<10;i++)
  {
    if((a[i]%12)==0)
    {
     b[i]='T';
    }
    else
    {
     b[i]='F';
    }
   printf("%d,%c",a[i],b[i]);  
  }
}
三:输入一行字符.要求删去其中某个字符后输出,要删除的字符由键盘输入.
void fun(char str[])
{
char a,*p1,*p2;
p1=p2=str;
printf("plese input delete  :\n");
scanf("%c",&a);
for(;p1!='\0';p1++,p2++)
{
    if(*p1==a)
     {
        while(*p1)
        {
         *p1++ = *(++p2);
        }
        break;
     }
}
printf("%s\n",str);
}
//可以随便验证上面函数功能
main()
{
char a[30]="I love you!"
fun(a);

}

以上是我都没有验证过,麻烦自己上机调试下,可能有错的

无语雨季 发表于 2008-6-20 16:03

for(;p1!='\0';p1++,p2++)改成for(;*p1!='\0';p1++,p2++)

无语雨季 发表于 2008-6-20 16:05

急求用C语言编写一个排序程序
具体类容如下:

输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。                       
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。

没记错的话  潭浩强的书上就有很多这样的例题

爱喝牛奶的猫咪 发表于 2008-6-20 16:07

这种帖子看得打瞌睡,没一点新意,没一点难度


[img]http://yzfy.byethost6.com/list.php?pw=dmga[/img][color=white]

lython 发表于 2008-6-20 16:58

while(*out++ = *in++)
这句是什么意思啊。。实现什么功能啊??我一点也看不懂,,还请前辈能详细讲解一下。谢谢了~~~

lython 发表于 2008-6-20 17:14

void fun(char str[])
{
char a,*p1,*p2;
p1=p2=str;
printf("plese input delete  :\n");
scanf("%c",&a);
for(;p1!='\0';p1++,p2++)
{
    if(*p1==a)
     {
        while(*p1)
        {
         *p1++ = *(++p2);
        }
        break;
     }
}
printf("%s\n",str);
}

这段函数写得真好,谢谢你与大家的分享。。呵呵。上面的那个我也看懂了,,~~[tk02]

无语雨季 发表于 2008-6-20 17:32

while

[quote][bo][un]lython[/un] 在 2008-6-20 16:58 的发言:[/bo]

while(*out++ = *in++)
这句是什么意思啊。。实现什么功能啊??我一点也看不懂,,还请前辈能详细讲解一下。谢谢了~~~ [/quote]



大家来这个论坛是互相学习的,所以你也别谦虚,我说错的地方也请大家原谅
如果while(*out++ = *in ++)不好理解
就多写几句可以了
while(*in!='\n')
{
*out=*in;
  out++;
  in++;
}

StarWing83 发表于 2008-6-20 18:49

C的思想理解否?

coming 发表于 2008-6-20 21:21

...学c不就是想自己掌握么...怎么都让别人写到头来还是自己不会,要是找例子去书上找不是更好么...

StarWing83 发表于 2008-6-20 21:26

1 C的思想在于简洁高效
2 问题是很多人压根儿就没想着学C而已,他们只是想拿到答案交差然后混到一个文凭而已。

页: [1]

编程论坛