首页 > 软件 > 求大佬帮忙 c语言

求大佬帮忙 c语言

软件 2025-01-08

C语言在线求大佬帮助

题目关键要求学号和姓名必须有长度验证(4个字符,也就是说字符串大小5)。

由于C语言库中的scanf函数是不验证长度的,所以不能直接用。

这里方法很多,方法一:如你用MicrosoftVisual Studio写代码,可使用scanf_s()来限制长度。方法二:使用getchar或getch函数循环一个一个接收字符并判断字符ASCII。方法三:

预先定义一个比较大的字符串来接收输入,然后判断输入的长度。

由于scanf_s不是C语言内置函数,所以我用第三种方法来做。

#include

#include

#define MS 5//最学生人数

#define MC 3//最大学科数

#define MN 4//姓名可输入的最大字符串长度

#define MI 4//学号可输入的最大字符串长度

typedef struct students

{

char sID[MI+1];

char sNa[MN+1];

int ss[MC];

}STUS;

void inputSInfo(STUS stus[]);

void prfStus(STUS stus[]);

int main()

{

STUS stus[MS];

inputSInfo(stus);

prfStus(stus);

return 0;

}

void prfStus(STUS stus[])

{

int i,j,sum;

for(i=0;i

{

printf("%5s %5s",stus[i].sID,stus[i].sNa);

sum=0;

for(j=0;j

sum+=stus[i].ss[j];

printf(" %5.1f\n",sum*1.0/MC);

}

}

void inputSInfo(STUS stus[])

{

char str[100];

int i,j;

printf("请分别输入%d名学生的信息:(学号及姓名不得超过4个字符)\n",MS);

for(i=0;i

{

memset(str,0,100);

scanf("%s",str);

if(str[MI]!=0)

{

printf("错误!学号超过4个字符!请重新输入该行信息!\n");

i--;

continue;

}else strcpy(stus[i].sID,str);

scanf("%s",str);

if(str[MI]!=0)

{

printf("错误!姓名超过4个字符!请重新输入该行信息!\n");

i--;

continue;

}else strcpy(stus[i].sNa,str);

for(j=0;j

scanf("%d",&stus[i].ss[j]);

}

}

c语言求助,求大佬帮助!

#include

int main() {

int n;

double price[6] = {4, 3.5, 3, 1.5, 5, 2.5};

char *goods[] = {"绿茶", "可乐", "芬达", "矿泉水", "爆米花", "瓜子","退出"};

for (int i = 0; i <= 6; i++)

printf("%d.%s\n", (i+1)%7, goods[i]);

while(1){

printf("请输入编号:");

scanf("%d", &n);

if(n==0) break;

printf("%s的价格是%.1f元\n", goods[n - 1], price[n - 1]);

}

return 0;

}

C语言,求大佬帮忙

#include
intmain()
{
FILE*fp1,*fp2,*fp3;
intc;
fp1=fopen("in.txt","r");
fp2=fopen("out1.txt","w");
fp3=fopen("out2.txt","w");
if(fp1==NULL||fp2==NULL||fp3==NULL)
{
printf("openfilefailed\n");
}
else
{
while((c=fgetc(fp1))!=EOF)
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
fputc(c,fp2);
else
{
fputc(c,fp3);
if(c>=0x80)
{
c=fgetc(fp1);
if(c!=EOF)fputc(c,fp3);
}
}
}
fcloseall();
}
return0;
}

C语言补充代码求大佬帮忙!!

这个是用指针形式进行,但是实际上,每一个指针的值就是对应一个字符的,因此可以通过字符比较就OK 而字符串结尾应该是\0以这个为遍历查询字符串的终止条件应该就好了,而指针每做+1,其实就是访问下一个字符的地址,取出内容就是下一个字符了 一下代码手机打的,建议看看,有问题请追问 int fun(char* *str, char *substr) { char *p=str; int count=0; while((*p)!='\0') { if((*p==*substr)&&(*(p+1)==*(substr+1)) count++; p=p+1; } return count; }

求c语言大佬帮助!帮我写个小程序,谢谢

#include
#include
#include
voidInit(inta[],intn); //随机生成元素取值范围在0到99的数组
voidShort(int*p,intn); //用选择法对数组中的元素从小到大排序
voidPrint(int*p,intn); //在屏幕上输出数组各元素的值(逗号分隔)
#defineN(10)
intmain()
{
inta[N],b[N],c[N*2],i;
srand(time(NULL));

Init(a,N);
Print(a,N);
Short(a,N);
Print(a,N);

Init(b,N);
Print(b,N);
Short(b,N);
Print(b,N);

for(i=0;i{
c[i]=a[i];
}
for(i=0;i{
c[i+N]=b[i];
}
Print(c,2*N);
Short(c,2*N);
Print(c,2*N);

return0;
}
voidInit(inta[],intn)
{
inti;
for(i=0;i{
*a++=rand()%100;
}
}
voidShort(int*p,intn)
{
inti,j,t;
for(i=0;i{
for(j=0;j{
if(p[j]>p[j+1])
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
}
voidPrint(int*p,intn)
{
inti;
for(i=0;i{
printf("%d%c",*p++,i}
}


标签:C(编程语言) 信息技术 编程语言 编程 CC++

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18