满意答案
fafwl
2013.07.13
采纳率:59% 等级:8
已帮助:260人
LS,第一个问题n没限制容易溢出,而且你给的那个精度不太高
————————————————————
第一个:
#include
#include
#include
void fun(int d,int n)
{
if(d==0) return;
char *sum=(char *)malloc(n+2);
memset(sum,0,n+2);
int i,j;
for(i=1;i<=n;i++)
{
for(j=0;j
{
sum[j+1]=(d+sum[j])/10+sum[j+1];
sum[j]=(d+sum[j])%10;
}
}
for(i=n+1;i>=0;i--)
if(sum[i]!=0) break;
for(j=i;j>=0;j--)
printf("%d",sum[j]);
printf("\n");
free(sum);
}
void main()
{
int d,n;
printf("请输入d:");
scanf("%d",&d);
printf("请输入n:");
scanf("%d",&n);
fun(d,n);
}
第二个:
#include
#include
#include
typedef struct stud
{
int sn;
int grade;
}stud;
void sort(stud *s,int n)
{
bool isSorted=false;
int i,j;
stud tmp;
for(i=n-2;i>=0&&!isSorted;i--)
{
isSorted=true;
for(j=0;j<=i;j++)
{
if(s[j].grade
{
tmp=s[j];
s[j]=s[j+1];
s[j+1]=tmp;
isSorted=false;
}
}
}
}
void main()
{
stud s[10];
int i;
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的编号:\n",i+1);
scanf("%d",&s[i].sn);
printf("成绩:\n");
scanf("%d",&s[i].grade);
}
sort(s,10);
printf("Class 1:");
for(i=0;i<10;i+=2)
printf("编号:%d 成绩:%d ",s[i].sn,s[i].grade);
printf("\nClass 2:");
for(i=1;i<10;i+=2)
printf("编号:%d 成绩:%d ",s[i].sn,s[i].grade);
printf("\n");
}
00分享举报