C语言代码 终于写完了 本人初学者 写的不好地方请提意见 跪谢
发布网友
发布时间:2022-12-23 02:10
我来回答
共2个回答
热心网友
时间:2024-07-15 05:29
#include<stdio.h>
#include<stdlib.h>//需要加上这两个头文件,stdlib.h提供给srand和rand,time.h提供给time(NULL)
#include <time.h>
void main()
{
char name[20];
int i=0,c;
int j;
char array[20][20];//对应后面的i < 50,这里应该改为array[50][20]
char bj[5][5]={"宝马","悍马","吉普","宾利","拖拉机"};//中文是双字节,所以这里要改成bj[5][10]更安全
char bm[20][20];//对应后面的i < 50,这里应该改为bm[50][20]
FILE *p1,*p2;
printf("请输入的名字:");
scanf("%s",&name);//&name改为name
if((p2=fopen("suonanluobu.txt","r"))==0)
{
printf("文件无法读取\n");
}
for(i=0;i<50;i++)
{
fscanf(p2,"%s %s\n",array[i],bm[i]);
}
fclose(p2);
for(i=0;i<50;i++)
{
if(strcmp(name,array[i])==0)
{
printf("不好意思你已经测试过了\n");
printf("%s会开%s",name,bm[i]);
exit(0);
}
}
srand((unsigned)time(NULL));
for(i=0;i<1;i++)
{
c=rand()%5;
}
printf("----------------------\n");
//建议把下面的代码改为switch case 结构好看点
if(c==0)
{
printf("%s将来会开宝马\n",name);
i=0;}
else if(c==1){
printf("%s将来会开悍马\n",name);
i=1;}
else if(c==2){
printf("%s将来会开吉普\n",name);
i=2;}
else if(c==3){
printf("%s将来会开宾利\n",name);
i=3;}
else if(c==4){
printf("%s将来会开拖拉机\n",name);
i=4;}
j=i;
if((p1=fopen("suonanluobu.txt","a"))==0)
{
printf("文件打开失败\n");
exit(0);
}
for(i=0;i<1;i++)
{
fprintf(p1,"%s %s\n",name,bj[j]);//bj[j]应改为bj[i],因为上面的if else语句用的是i
}
fclose(p1);
}
热心网友
时间:2024-07-15 05:29
scanf("%s",&name); ---〉scanf("%s",name);