100分C语言编程题!一个半小时之内求答案,采纳追加50分!

第一题:随机生成一个3*4的数组,数的范围在0-99,用函数统计每行的和,存放到另一个数组,要求用数组名传参给函数

第二题:从键盘输入字符,找出它在字符串“I am a student in hunan university”中的位置。如果找到了,将所有出现的该字符全替换成“x”,要求用指针和函数。

第三题:使用冒泡排序对字符串数组{“student”,“worker”,“teacher”,“doctor”}升序排列,要求用函数。
回答出两道就给分~~吐血求答案

第一题:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define RMAX 3
#define cMAX 4
void sumRow(int a[][cMAX],int b[])
{
for(int i = 0;i < RMAX;i++)
{
b[i] = 0;
for(int j = 0;j < cMAX;j ++)
b[i] += a[i][j];
}
}
void main()
{
int i,j,a[RMAX][cMAX],b[RMAX];
clrscr();
randomize();
for(i=0;i<RMAX;i++)
for(j=0;j<cMAX;j++)
a[i][j]=random(nMAX);
printf("产生随机数后数组如下所示:\n");
for(i=0;i<RMAX;i++){
for(j=0;j<cMAX;j++)
printf("%d ",a[i][j]);
printf("\n");
}
sumRow(a,b);
printf("每行的和为:\n");
for(i=0;i<RMAX;i++){
printf("第%d行和为%d\n",i+1,b[i]);
}
}
-----------------------------------------------
第二题
#include <stdlib.h>
#include <stdio.h>
void replace(char *p,char ch)
{
while(*p != '\0'){
if(*p == ch)*p='x';
p ++;
}
}
void main()
{
char str[] = "I am a student in hunan university";
printf("请输入字符:");
char ch = getchar();
replace(str,ch);
printf("替换后的字符串为:%s\n",str);
}
-------------------------------------------
第三题
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define LEN 20
void sort(char str[][LEN],int n)
{
for(int i = 0;i < n;i ++)
for(int j = 0;j < n-1-i;j ++)
if(strcmp(str[j],str[j+1]) > 0)
{
char s[LEN];
strcpy(s,str[j]);
strcpy(str[j],str[j+1]);
strcpy(str[j+1],s);
}
}
void main()
{
char str[][LEN] = {"student","worker","teacher","doctor"};
sort(str,4);
printf("排序后的字符串数组为:\n");
for(int i = 0;i < 4;i ++)
printf("%s\n",str[i]);
}追问

第一题有四个error:
cpp(18) : error C2065: 'clrscr' : undeclared identifier
cpp(19) : error C2065: 'randomize' : undeclared identifier
cpp(22) : error C2065: 'random' : undeclared identifier
cpp(22) : error C2065: 'nMAX' : undeclared identifier

能不能改一下?

追答

你是用vc 是吗 那我调整下代码

追问

是vc,谢谢了~~

追答

#include
#include
#include
#define RMAX 3
#define cMAX 4
#define nMAX 100
void sumRow(int a[][cMAX],int b[])
{
for(int i = 0;i < RMAX;i++)
{
b[i] = 0;
for(int j = 0;j < cMAX;j ++)
b[i] += a[i][j];
}
}
void main()
{
int i,j,a[RMAX][cMAX],b[RMAX];
srand(time(0));
for(i=0;i<RMAX;i++)
for(j=0;j<cMAX;j++)
a[i][j]=rand()%100;
printf("产生随机数后数组如下所示:\n");
for(i=0;i<RMAX;i++){
for(j=0;j<cMAX;j++)
printf("%d ",a[i][j]);
printf("\n");
}
sumRow(a,b);
printf("每行的和为:\n");
for(i=0;i<RMAX;i++){
printf("第%d行和为%d\n",i+1,b[i]);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-01
楼上的第一题似乎有问题,下面是第一题的,已运行过没问题的了……
#include<stdio.h>
#include<stdlib.h>
void sum(a);
int main()
{
int i,j,a[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
a[i][j]=rand()%100;

for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",a[i][j]);
printf("\n");}
sum(a); //该函数计算每行的和
return 0;
}

void sum(int a[3][4])
{
int i,j,s=0,b[3];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
s+=a[i][j];
b[i]=s;
}
printf("第%d行的和为:%d\n",i+1,b[i]);
}
}
第2个回答  2012-04-01
必须高手来啊~
相似回答