c语言字符串输出的是乱码
#include<stdio.h>#include<stdlib.h>#include<time.h>intrandom(intnum);voidmain(){inti,...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random(int num);
void main()
{
int i,n;
char *p;
printf("请输入学生人数:");
scanf("%d",&n);
p=(char*)malloc(n*sizeof(char));
if(p==NULL)
{
printf("Insufficient memory available\n");
exit(0);
}
printf("请依次输入学生姓名:");
for(i=0;i<n;i++)
scanf("%s",p+i);
printf("被点到的同学的名字是:");
printf("%s ",p+random(n-1));
}
int random(int num)
{
int t;
srand(time(NULL));
t=rand()%num+0;
return(t);
}
看图片 展开
#include <stdlib.h>
#include <time.h>
int random(int num);
void main()
{
int i,n;
char *p;
printf("请输入学生人数:");
scanf("%d",&n);
p=(char*)malloc(n*sizeof(char));
if(p==NULL)
{
printf("Insufficient memory available\n");
exit(0);
}
printf("请依次输入学生姓名:");
for(i=0;i<n;i++)
scanf("%s",p+i);
printf("被点到的同学的名字是:");
printf("%s ",p+random(n-1));
}
int random(int num)
{
int t;
srand(time(NULL));
t=rand()%num+0;
return(t);
}
看图片 展开
1个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random(int num);
void main()
{
int i,n;
char p[100][10];
printf("请输入学生人数:");
scanf("%d",&n);
//p=(char*)malloc(n*sizeof(char));
if(p==NULL)
{
printf("Insufficient memory available\n");
exit(0);
}
printf("请依次输入学生姓名:");
for(i=0;i<n;i++)
scanf("%s",p[i]);
printf("被点到的同学的名字是:");
printf("%s ",p[random(n-1)]);
}
int random(int num)
{
int t;
srand(time(NULL));
t=rand()%num+0;
return(t);
}
#include <stdlib.h>
#include <time.h>
int random(int num);
void main()
{
int i,n;
char p[100][10];
printf("请输入学生人数:");
scanf("%d",&n);
//p=(char*)malloc(n*sizeof(char));
if(p==NULL)
{
printf("Insufficient memory available\n");
exit(0);
}
printf("请依次输入学生姓名:");
for(i=0;i<n;i++)
scanf("%s",p[i]);
printf("被点到的同学的名字是:");
printf("%s ",p[random(n-1)]);
}
int random(int num)
{
int t;
srand(time(NULL));
t=rand()%num+0;
return(t);
}
追问
请问能解释一下//p=(char*)malloc(n*sizeof(char));,这个么。。。前面不是定义p[100][10]了么。。。还有为什么前面必须得有//
追答
p[100][10]是数组,不用预先分配内存。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询