结构体

结构体1
问题:一个班有20名学生,输入每个学生的学号、姓名和一门课的成绩,求该班的平均成绩。

#include<stdio.h>
struct student {
	int number;//学号
	char name[8];//姓名
	float score;//成绩 
}; 
int main()
{ int i;
  struct student p[20];
  for(i=0;i<20;i++)
  { scanf("%s",&p[i].name);
    scanf("%d",&p[i].number);
    scanf("%f",&p[i].score);
  }
  float sum=0.00;
  int j;
  for(j=0;j<20;j++)
  {sum=sum+p[j].score;
  }
  float average;
  average=sum/20.00;
  printf("%f",average);
  return 0;
}

在这里插入图片描述
结构体2
问题:编写一个程序,实现从键盘输入一串字符,将其中的小写字母全部转换成大写字母后,存储到文件upperFile.txt中。输入的字符串以“!”结束。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{ FILE *f;
  char p[100];
  int i=0;
  printf("输入字符串,并以感叹号结尾"); 
  gets(p);
  if((f=fopen("upperFile.txt","w"))==NULL)//打开要输出的文件,让f指向它; 
  { 
  printf("无法打开文件\n");
  exit(0); 
   } 
  while(p[i]!='!')
  { 
   if(p[i]>='a' && p[i]<='z')
   {p[i]-=32;
   }
   fputc(p[i],f);//向文本文件输出字符
   i++; 
   } 
   fclose(f);//把字符串输出
   f=fopen("upperFile.txt","r");
   printf("转换后的字符串为\n"); 
   puts(fgets(p,strlen(p)+1,f));//从文件中读取一个字符串,长度为strlen(p),并显示 
   fclose(f);
   return 0;
}

在这里插入图片描述
结构体3
问题:根据n显示三角图形,n从键盘输入。

#include<stdio.h>
int main()
{
	int n,i,p,j,t,m=-1;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
	  p=n-i;//空格数
	  for(j=1;j<=p;j++)
	  {printf(" ");
	  }
	  m=m+2;
	  for(t=1;t<=m;t++)
	  {printf("*");
	  }
	  printf("\n");
	}
  return 0;
 } 

在这里插入图片描述
结构体4
问题:编写一函数:int isHuiwen(char s[]),判断s是否是回文,若是,返回1,不是返回0。在main中输入具体的字符串,根据调用的结果显示是否是回文,若是,显示“yes”,若不是,显示“no”。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int isHuiwen(char s[]) 
{int i,len,t=1;
 len=strlen(s);
 for(i=0;i<len;i++)
 {if(s[i]!=s[len-i-1])
   {t=0; 
   break;
   } 
 }
 return t;
}
int main()
{char s[100];
 gets(s);
 if(isHuiwen(s)==1)
 {printf("yes");
 }
 else
 {printf("no");
 }
 return 0;
}

在这里插入图片描述
结构体5
问题:输入n个数,判是否为素数。

#include<stdio.h>
int judge(int a)
{int i,t=1;
 for(i=2;i<a;i++)
 {if(a%i==0)
   {t=0;
   break;
	} 
 }
 return t;
}
int main()
{int n,i,t;
 scanf("%d",&n);
 int p[n];
 for(i=0;i<n;i++)
 {scanf("%d",&p[i]);
 }
 for(t=0;t<n;t++)
 {if(judge(p[t])==1)
  {printf("yes\n");
  }
  else
  {printf("no\n");
  }
 }
 return 0;
 } 

在这里插入图片描述
结构体6
问题:输入若干个数,判断是奇数还是偶数。

#include<stdio.h>
int judge(int a)
{int t=1;
 if(a%2==0)
 {t=0;
 }
 return t;
}
int main()
{int n,i;
 scanf("%d",&n);
 int p[n];
 for(i=0;i<n;i++)
 {scanf("%d",&p[i]);
 }
 int j;
 for(j=0;j<n;j++)
 {if(judge(p[j])==1)
  {printf("yes\n");
  }
  else
  {printf("no\n");
  }
 }
 return 0;
 } 

在这里插入图片描述
结构体7
问题:叛逆期的小明什么都喜欢反着做,连看数字也是如此(负号除外),比如:

小明会把1234它看成4321;把-1234看成-4321;把230看成032 (032=32);把-230看成-032(-032=-32)。

现在,小明做了一些a+b和a-b的题目(a, b为整数且不含前导0),如果给你这些题目正确的答案,你能猜出小明会做得到什么答案吗?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct title {int x;int y; };
void analysis (struct title p)//分析出a 与 b 并换位置 
{struct title r;
 int m;
 m=p.x +p.y;
 r.x =m/2;
 m=p.x -p.y;
 r.y=m/2;
  int i,len=1,sum=0,ss,b;
  ss=r.x;
 while((ss=ss/10)!=0)
 {
  len++;
 }
 for(i=1;i<=len;i++)
  { b=r.x %10;
    r.x =r.x/10;
    sum=sum*10+b;
   } 
   r.x =sum;
   sum=0;
 len=1;
    ss=r.y;
 while((ss=ss/10)!=0)
 {
  len++;
 }
  for(i=1;i<=len;i++)
  {b=r.y %10;
   r.y=r.y/10;
    sum=sum*10+b;
  }
  r.y=sum;
  struct title q;
  q.x =r.x +r.y ;
  q.y=r.x -r.y;
  printf("%d ",q.x );
  printf("%d\n",q.y);
  return ;
}

int main()
{int n;
 scanf("%d",&n);
 struct title a[n];
 int i;
 for(i=0;i<n;i++)
 {scanf("%d",&a[i].x);
  scanf("%d",&a[i].y);
 }
 int c;
 for(c=0;c<n;c++)
 {analysis(a[c]);
 }
  return 0;
 }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值