#include<stdio.h>
#include<math.h>
void fun(int *x, int *n,int *s)
{
*s = pow(*x, *n);
}
void fun(char* b,int *n,char *m)
{
int i;
for (i = 0; i < *n; i++)
{
printf("%c", *b);
}
}
int main()
{
int a, x, n;
char b;
int s = 0;
char m = 'a';
scanf("%d", &a);
if (a == 1)
{
scanf("%d%d", &x, &n);
fun(&x, &n, &s);
printf("%d", s);
}
if (a == 2)
{
scanf("%c%d", &b, &n);
fun(&b,&n,&m);
}
return 0;
}
我把第二小题的代码删去后可以运行正确,请问一下我哪里出错了?
我试了一下,代码编译可以通过,只是a == 2得不到正确结果
scanf("%c%d", &b, &n);多次读取不到字符
办法是
int main()
{
int a, x, n;
char b;
int s = 0;
char m = 'a';
scanf("%d\n", &a);//加\n 刷一下缓冲区
if (a == 1)
{
scanf("%d%d", &x, &n);
fun(&x, &n, &s);
printf("%d", s);
}
if (a == 2)
{
scanf("%c%d", &b, &n);
fun(&b,&n,&m);
}
return 0;
}