查看: 9168|回复: 14
收起左侧

[软件] C语言基础 ACM 题 2则

[复制链接]
沧海ふ无涯
发表于 2013-1-8 23:09:40 | 显示全部楼层 |阅读模式
一共6题编程,被我这个课代表拿到了,哈哈哈哈哈哈哈~~~~~




好吧,还有2题。。。。求解答

不难的,对你而言!


=======================


题一
题目描述有一个n×m的矩阵,要求编程序求出:
每行元素的最大值,以及其所在的行号和列号。求出所有元素的最大值,以及其所在的行号和列号。


输入先输入n,m (2<=n<=100,2<=m<=100)
在输入矩阵中各元素的值。(假设为整型数)


输出先输出每行元素的最大值的下标及其值,每个占一行;
再输出所有元素的最大值的下标及其值。


样例输入 3 4
1 2 3 4
10 11 12 13
  3 4 5 6
样例输出0 3 4
1 3 13
2 3 6
1 3 13





题二


题目描述现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。编写一个函数input,用来输入一个学生的数据记录。编写一个函数print,打印一个学生的数据记录。在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100

输入学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。

输出每个学生的学号、姓名、三科成绩占一行,逗号分开。

样例输入2
a100 zhblue 70 80 90
b200 newsclan 90 85 75
样例输出
a100,zhblue,70,80,90
b200,newsclan,90,85,75



评分

参与人数 1人气 +1 收起 理由
yloko + 1 版区有你更精彩: )

查看全部评分

数据流谷雨
发表于 2013-1-9 01:45:18 | 显示全部楼层
我调了一晚上,第二题还有问题,表现为第一次输入的姓名、学号显示成为第二次输入的姓名、学号,其他没问题
  1. #include<stdio.h>

  2. void input(char *xuehaozhizheng,char *xingmingzhizheng,int *kemu1zhizheng,int *kemu2zhizheng,int *kemu3zhizheng)
  3. {
  4. //        scanf("%s",*p);
  5. //        scanf("%s",&xingming[i]);
  6.         scanf("%s%s%d%d%d",xuehaozhizheng,xingmingzhizheng,kemu1zhizheng,kemu2zhizheng,kemu3zhizheng);
  7. }

  8. void print(char *xuehaozhizheng,char *xingmingzhizheng,int *kemu1zhizheng,int *kemu2zhizheng,int *kemu3zhizheng)
  9. {
  10.         printf("%s %s %d %d %d\n",xuehaozhizheng,xingmingzhizheng,*kemu1zhizheng,*kemu2zhizheng,*kemu3zhizheng);
  11. }

  12. int main()
  13. {
  14.         int kemu1[100],kemu2[100],kemu3[100],m,n,N,i;
  15.         char xuehao[100][100],xingming[100][100];
  16. //        char *p;
  17.         int *kemu1zhizheng=&kemu1[0],*kemu2zhizheng=&kemu2[0],*kemu3zhizheng=&kemu3[0];
  18.         char *xuehaozhizheng=&xuehao[0][0],*xingmingzhizheng=&xingming[0][0];
  19. //        p=&kemu1[0];
  20. //        p=&xuehao[0][0];
  21. //        i=0;
  22.         scanf("%d",&N);

  23.         for(i=0;i<N;i++)
  24.         {
  25.                 input(xuehaozhizheng,xingmingzhizheng,kemu1zhizheng,kemu2zhizheng,kemu3zhizheng);
  26.                 xuehaozhizheng=&xuehao[i][0];
  27.                 xingmingzhizheng=&xingming[i][0];
  28.                 kemu1zhizheng++;
  29.                 kemu2zhizheng++;
  30.                 kemu3zhizheng++;
  31.         }
  32.         xuehaozhizheng=&xuehao[0][0];
  33.         xingmingzhizheng=&xingming[0][0];
  34.         kemu1zhizheng=&kemu1[0];
  35.         kemu2zhizheng=&kemu2[0];
  36.         kemu3zhizheng=&kemu3[0];
  37. //        print(kemu1zhizheng,kemu2zhizheng,kemu3zhizheng);
  38.        
  39.         for(i=0;i<N;i++)
  40.         {
  41.                 print(xuehaozhizheng,xingmingzhizheng,kemu1zhizheng,kemu2zhizheng,kemu3zhizheng);
  42.                 xuehaozhizheng=&xuehao[i][0];
  43.                 xingmingzhizheng=&xingming[i][0];
  44.                 kemu1zhizheng++;
  45.                 kemu2zhizheng++;
  46.                 kemu3zhizheng++;
  47.         }
  48.        
  49.        
  50.        
  51. //        scanf("%d",p);
  52. //        scanf("%d",&kemu1);
  53. //        scanf("%s",&xingming[1]);
  54. //        printf("%s",xuehao[0]);
  55. //        printf("%s",xingming[0]);
  56. //        printf("%d",kemu1[0]);
  57. //        printf("%d",kemu1[1]);
  58. //        printf("%d",kemu2[1]);
  59. }
复制代码

评分

参与人数 3经验 +10 人气 +2 收起 理由
yloko + 10 水平不够,评的不对,见谅!
virusdefender + 1 很给力!
屁颠屁颠 + 1 版区有你更精彩: )

查看全部评分

wuhangju
发表于 2013-1-9 08:35:37 来自手机 | 显示全部楼层
最好把源程序贴出来,c太久没用我也忘了,如果有源程序,看下还是可以的
3781web
发表于 2013-1-9 10:46:15 | 显示全部楼层
问一下,第二题是用结构体来做吗,我刚开始学,谢谢了!
yege0201
发表于 2013-1-9 11:10:51 | 显示全部楼层
本帖最后由 yege0201 于 2013-1-9 11:11 编辑

我怎么感觉这两道题都是考验的二维数组呢~

代码写得不规范~LZ凑合看看吧~
  1. #include <stdio.h>
  2. #include <conio.h>

  3. char NO[100][20] = {'\0'};
  4. char name[100][20] = {'\0'};
  5. char score[100][3];
  6. int number = 0;
  7. int i = 0;

  8. void input()
  9. {
  10.         printf("%s", "输入学生数量:");
  11.         scanf("%d", &number);
  12.         for( i; i<number; i++)
  13.         {
  14.                 scanf("%s%s%d%d%d", &NO[i], &name[i], &score[i][0], &score[i][1], &score[i][2]);
  15.         }
  16.         i = 0;
  17. }

  18. void print()
  19. {
  20.         printf("%s", "学生成绩为:\n");
  21.         for( i; i<number; i++)
  22.         {
  23.                 printf("%s%s%s%s%d%s%d%s%d", NO[i], ",", name[i], ",", score[i][0], ",", score[i][1], ",", score[i][2]);
  24.                 printf("\n");
  25.         }
  26. }

  27. void main()
  28. {
  29.         input();
  30.         print();
  31.         getch();
  32. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1经验 +9 收起 理由
yloko + 9 水平不够,评的不对,见谅!

查看全部评分

沧海ふ无涯
 楼主| 发表于 2013-1-9 11:17:21 | 显示全部楼层
3781web 发表于 2013-1-9 10:46
问一下,第二题是用结构体来做吗,我刚开始学,谢谢了!

是的。。。
沧海ふ无涯
 楼主| 发表于 2013-1-9 11:19:43 | 显示全部楼层
yege0201 发表于 2013-1-9 11:10
我怎么感觉这两道题都是考验的二维数组呢~

代码写得不规范~LZ凑合看看吧~

OK   main()函数返回值不能是空  

cfree 5.0
yege0201
发表于 2013-1-9 11:24:48 | 显示全部楼层
本帖最后由 yege0201 于 2013-1-9 11:32 编辑
沧海ふ无涯 发表于 2013-1-9 11:19
OK   main()函数返回值不能是空  

cfree 5.0


void为啥要有返回值呢~

估计是编译器的区别吧~我用VS2010可以通过~

既然这样~LZ把void main()改成int main()~在“getch();”后面添加“return 0;”就可以了~
沧海ふ无涯
 楼主| 发表于 2013-1-9 11:34:28 | 显示全部楼层
数据流谷雨 发表于 2013-1-9 01:45
我调了一晚上,第二题还有问题,表现为第一次输入的姓名、学号显示成为第二次输入的姓名、学号,其他没问题

首先,不管怎么样,对你还是表示感谢的,这么晚还帮我调试代码。。。

不过。。。。可能我复制粘贴代码有点问题吧。。。。。

代码是有点小问题,是输入的问题



输入完成后没有输出


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
沧海ふ无涯
 楼主| 发表于 2013-1-9 11:37:54 | 显示全部楼层
yege0201 发表于 2013-1-9 11:24
void为啥要有返回值呢~

估计是编译器的区别吧~我用VS2010可以通过~

我们学的是   ansi C  和vc还是有差别的

整个ACM网站运行于ubuntu上,GCC编译。。。。

乱七八糟的问题太多了。。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-15 21:29 , Processed in 0.136421 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表