如果字符串中字符的ASCII值之和是偶数,则称字符串是幸运的。该函数接受一个指向字符串的指针并返回一个int 如果字符串是幸运的,则返回值为1,否则返回0。
我尝试过以下代码,但在执行时我遇到了一些错误。
#include<stdio.h>
#include<string.h>
int checklucky(char *a);
int main()
{
int c;
c=checklucky(char *a);
if(c==1)
printf("%s is lucky",a);
else
printf("%s is not lucky",a);
return 0;
}
int checklucky(char *a)
{
char name[100];
int sum=0,len,i;
a=name;
printf("Enter the input string\n");
scanf("%s",name);
len=strlen(name);
for(i=0;i<len;i++)
{
sum=sum+name[i];
}
if(sum%2==0)
return (1);
else
return (0);
}
示例输入和输出1:
Enter the input string
anitha
anitha is not lucky
答案 0 :(得分:3)
此行不正确,不应编译
c=checklucky(char *a);
您声明checklucky
接受指向输入字符串的指针,但实际上您正在checklucky
内收集该输入字符串。将该部分移动到main
,然后传入字符串。
int main()
{
int c;
char name[100];
scanf("%s",name);
c=checklucky(name);
然后
int checklucky(char *a)
{
int sum=0,len,i;
len=strlen(a);
// etc. Refer to a rather than name,
// or change the method parameter's name to name.
答案 1 :(得分:0)
您可以在main()中获取输入字符串,并将指针传递给被调用的函数。您可以通过多种方式修改代码以使其正常运行。
下面是一种方法(它试图保持代码与原始代码类似)
#include<stdio.h>
#include<string.h>
int checklucky( char *);
int main()
{
int c;
char a[100];
printf("Input string: ");
scanf("%s",a);
c=checklucky(a);
if(c==1)
printf("%s is lucky\n",a);
else
printf("%s is not lucky\n",a);
return 0;
}
int checklucky(char *a)
{
char *name;
int sum=0,len,i;
name=a;
// printf("Enter the input string\n");
// scanf("%s",name);
len=strlen(name);
for(i=0;i<len;i++)
{
sum=sum+name[i];
}
if(sum%2==0)
return (1);
else
return (0);
}
答案 2 :(得分:0)
sub SomeSub()
On Error Goto TestFailed
'Some code
'Some code
'Some code
Exit sub
TestFailed:
'Some code here to alert you to and/or handle the fallout of the error.
End sub