我char
在程序中声明了一个数组,可以容纳12个字符.我通过程序访问这些值.但每次我尝试运行该文件时它都不会给我一个错误但在char数组中显示警告并且.exe停止执行.我的程序看起来像这样:
int main(){
char *data[] = {"A,H,H,A"};
char* ahd_database[12] = {'A', 'H', 'D', 'A', 'H', 'D', 'A', 'H', 'D', 'A', 'H', 'D'};
printf("The first letter in index is %c", index[0]);
Run Code Online (Sandbox Code Playgroud)
但这没有成功.它发出的警告是:
Multiple markers at this line
- initialization makes pointer from integer without a cast [enabled by
default]
- (near initialization for 'ahd_database[7]') [enabled by default]
- (near initialization for 'ahd_database[6]') [enabled by default]
- (near initialization for 'ahd_database[5]') [enabled by default]
- (near initialization for 'ahd_database[4]') [enabled …
Run Code Online (Sandbox Code Playgroud) 我根据'memcpy'手册页编写了这段小代码.我执行了它,但我没有得到任何错误.通常,我应该得到'seg fault',因为我试图将消息复制到小目的地.
char str1[1];
char str2[] = "Big Message";
memcpy(&str1, &str2, strlen(str2));
Run Code Online (Sandbox Code Playgroud) 我有一个简单的代码
def func(a,b):
if (b>=3.0) and (b<=4.0):
if (a>=3.0) and (a<=6.0):
var_region='A'
if (a>6.0) and (a<=11.0):
var_region='B'
if (b>4.0):
var_region='C'
region=var_region
print region
return region
Tmax=4.1
Tmin=3.0
T=Tmin
var=3.0
dT=0.1
while T<Tmax:
calll=func(var,T)
T=T+dT
Run Code Online (Sandbox Code Playgroud)
该计划的输出是:
A,A..........,C
Run Code Online (Sandbox Code Playgroud)
在while循环中,"T"的最终值为4.0,它打印"C"而不是"A".这是为什么?
我需要通过引用调用返回值,
#include<stdio.h>
#include<conio.h>
#include<math.h>
int Splitting(int *,int);
int main()
{
int x = 1234567891,x1=x,a1,b1,count=0;
a1=Splitting(&x,count);
b1=x;
printf("a1=%d,b1=%d",a1,b1);
}
int Splitting(int *x,int count)
{
int x1=*x,x2, a = 0, b = 0, a1 = 0, b1 = 0;
/**Some code logic used**/
a1=12345,b1=67891;
x1 =(int *) a1;
return b1;
}
Run Code Online (Sandbox Code Playgroud)
我需要返回值a1
, b1
。
其中 b1 通过 return 语句和a1
通过引用调用。所以我需要设置值x1=a1;
它不起作用。
请建议。
这是我的计划,我根据投入的日期找到了一年中的日期.我还必须考虑闰年.我已经完成了所有这些,但当输入一年如12/31/1993时,我得到366这一天是不正确的,因为它不是闰年所以一年中的那一天应该是365.我已经测试过这是否是我的if声明,只是让程序只能测试闰年,并且如果它是一个非闰年就关闭.当输入相同的日期时,程序关闭,告诉我问题不在于我的if语句,而在于我的情况和开关.我不确定发生了什么,或者为什么在日期增加额外的一天.
#include <stdio.h>
int main(void){
int month,day,year,day_number=0;
printf("Enter a date in the form (01/02/1996): ");
scanf("%d/%d/%d", &month,&day,&year);
if(((year%4 == 0) && (year%100 !=0)) || (year%400==0)){
goto two;
}
else{
month=month;
goto one;
}
one:
switch(month)
{
case 1:day_number=day;
break;
case 2:day_number=31+day; //January+Febuary
break;
case 3:day_number=59+day; //January+Febuary+March
break;
case 4:day_number=90+day; //January+Febuary+March+April
break;
case 5:day_number=120+day; //January+Febuary+March+April+May
break;
case 6:day_number=151+day; //January+Febuary+March+April+May+June
break;
case 7:day_number=181+day; //January+Febuary+March+April+May+June+July
break;
case 8:day_number=212+day; //January+Febuary+March+April+May+June+July+August
break;
case 9:day_number=243+day; //January+Febuary+March+April+May+June+July+August+September
break;
case 10:day_number=273+day; //January+Febuary+March+April+May+June+July+August+September+October
break;
case 11:day_number=304+day; //January+Febuary+March+April+May+June+July+August+September+October+November
break;
case …
Run Code Online (Sandbox Code Playgroud) Case I:
int a[12];
printf("%d",sizeof(a));
Case II:
int *a = (int *)malloc(12*sizeof(int));
printf("%d",sizeof(a));
Run Code Online (Sandbox Code Playgroud)
以上两个代码片段返回不同的输出,
48
在第一种情况下 4
在第二种情况下为什么会这样?
我的Python程序使用字典,并且有大量的“if”语句只是为了检查检索到的值的类型。
我想避免这种情况,而是以更编程正确的方式进行。
这是一个例子:
# golddb should only contain str keys and int values
golddb = dict()
def gainGold(playername):
global golddb
golddb[playername] += 1 # error may happen if I try to += a non-int type
golddb[playername] = "hello" # I want python to give an error when I try to assign a str to be a value in the dict
Run Code Online (Sandbox Code Playgroud) 我有一个字符串存储tempP
,因为我没有使用C++的经验.我想知道如何在字符串中添加一个单词.所以例如在C#中就是这样
tempP = tempP + "addtext";
Run Code Online (Sandbox Code Playgroud) 我试图测试的差异sizeof
和strlen
,但我发现了一些奇怪的今天.代码如下.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char a[]={"I am a boy"};
char b[]={'I',' ','a','m',' ','a',' ','b','o','y'};
cout << "sizeof(a) = " << sizeof(a) << endl << "sizeof(b) = " << sizeof(b) <<endl;
cout << "strlen(a) = "<< strlen(a) << endl << "strlen(b) = " << strlen(b) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
sizeof(a) = 11
sizeof(b) = 10
strlen(a) = 10
strlen(b) = 11
Run Code Online (Sandbox Code Playgroud)
我知道结果的前三行,但我不明白为什么strlen(b)
是11.有人可以帮我吗?
我正在制作一个数字总和的程序,看看这个程序:
#include<iostream>
using namespace std;
int main(){
int i, j;
int sum=1;
cout<<"Enter your sum: "<<endl;
cin>>i;
while(i>0){
j=i%10;
sum=sum+j;
i=i/10;
}
cout<<"Sum: "<<sum;
cout<<endl;
}
Run Code Online (Sandbox Code Playgroud)
因此,当我输入输出时,25
它会将我作为输出7
.
但是我希望在每个总和中用一个数字来表示,就像我输入的那样147
.它给了我一个输出,10
但我想1
作为输出.
我知道它可以做到:
while(i>0){
j=i%10;
sum=sum+j;
i=i/10;
}
cout<<"Sum: "<<sum/10;
Run Code Online (Sandbox Code Playgroud)
当然它会给我一个输出1
.
但是当我键入一个数字时,185
它给了我一个输出1
..但我想要整数位数.
如果我输入,我想要该程序 185
输出必须假设为
1+8+5=14
1+4=5
Run Code Online (Sandbox Code Playgroud)
输出必须是5
..所以请帮我解决这类问题.